如何连接并创建本地Oracle数据库?sqlplus64遇ORA-12545报错
解决ORA-12545错误并在Ubuntu上练习SQL的方案
首先得戳破核心问题:你只安装了SQL*Plus客户端,没有本地运行的Oracle数据库实例,sqlplus64 / as sysdba这个命令是尝试连接本地默认的Oracle数据库服务,但这个服务根本不存在,所以才会报ORA-12545 "找不到目标主机或对象"的错误。
因为你没法连接学校的远程SSH,也没有远程数据库的凭据,下面给你几个切实可行的解决方案,帮你顺利练习SQL:
方案一:安装Oracle轻量本地数据库(Oracle XE)
这是Oracle官方免费的入门级数据库,适合本地练习:
- 下载对应你Ubuntu版本的Oracle Database XE(目前最新是21c版本),按照官方指引完成安装
- 安装后先启动数据库服务:
sudo systemctl start oracle-xe - 设置环境变量(可以加到
~/.bashrc里永久生效):export ORACLE_SID=XE export ORACLE_HOME=/opt/oracle/product/21c/dbhomeXE - 现在就能用
sqlplus64 / as sysdba连接本地实例了,首次登录会要求你设置sys用户的密码 - 建议创建一个普通练习用户,避免用sys权限操作:
之后用CREATE USER practice_user IDENTIFIED BY your_secure_password; GRANT CONNECT, RESOURCE, CREATE VIEW TO practice_user;sqlplus64 practice_user/your_secure_password登录就能练习SQL了
方案二:用Oracle Live SQL在线练习(零本地安装)
如果不想折腾本地安装,Oracle官方提供了完全免费的在线SQL练习平台:
- 注册一个Oracle免费账号(只用邮箱就能完成)
- 登录后直接在网页编辑器里编写、运行SQL语句,支持绝大多数Oracle SQL语法,还自带各种示例数据集
- 优点是不用装任何软件,只要有网络就能用,非常适合快速练习基础SQL
方案三:用Docker快速搭建Oracle容器数据库
如果你的Ubuntu已经装了Docker,这是最快捷的本地数据库搭建方式:
- 拉取第三方维护的Oracle XE镜像(无需Oracle账号,更方便):
docker pull gvenzl/oracle-xe - 启动容器,设置密码并映射端口:
docker run -d -p 1521:1521 -e ORACLE_PASSWORD=your_password gvenzl/oracle-xe - 等待容器启动完成(大概5-10分钟),然后用以下命令连接:
sqlplus64 sys/your_password@localhost:1521/XE as sysdba - 同样建议创建普通用户来练习SQL,避免使用sys权限
关键提醒
/ as sysdba这个连接方式只适用于本地已运行的Oracle数据库实例,没有数据库服务的话,这个命令永远会报错。你必须先有一个可连接的Oracle数据库(本地或远程),才能用sqlplus64进行操作。
内容的提问来源于stack exchange,提问作者Ricardo Martínez
相关产品推荐
相关产品推荐

