如何在Oracle-SQL Developer创建连接?Oracle 18c连接报错如何解决?
嘿,这两个问题都是Oracle新手常遇到的,我给你详细拆解一下:
- 打开Oracle SQL Developer,左侧的「Connections」面板里,点左上角那个绿色的加号(就是「New Connection」按钮)。
- 在弹出的连接配置窗口里,填好这些关键信息:
- Connection Name:给连接起个好记的名字,比如「本地18c数据库」
- Username:输入你要用的Oracle用户名,比如默认的SYSTEM、SYS,或者你自己创建的用户
- Password:对应用户名的密码,勾选「Save Password」下次就不用重复输了
- Connection Type:默认选「Basic」就行,适合大部分场景
- Hostname:本地数据库就填
localhost或者127.0.0.1,远程的话填服务器IP - Port:默认是
1521,安装时改了端口就填修改后的 - SID/Service Name:Oracle 18c默认CDB的SID是
ORCL,如果是连PDB(可插拔数据库),建议用服务名,比如默认的ORCLPDB1
- 填完后点左下角的「Test」按钮测一下,要是提示「Status: Success」,直接点「Connect」就能保存并连接数据库了。
这个报错大多和密码验证、用户状态或者数据库配置有关,给你几个排查方向:
核对密码大小写是否匹配
Oracle 12c及以后默认开启了密码大小写敏感(由SEC_CASE_SENSITIVE_LOGON参数控制)。要是你安装时设置密码区分了大小写,登录时必须严格对应。
可以用本地sqlplus先登录验证:打开命令提示符,输入sqlplus / as sysdba,然后执行命令关闭大小写敏感(如果需要的话):ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;之后让参数生效(可以重启数据库,或者执行
ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE SCOPE=BOTH;),再试登录。检查用户是否被锁定/密码过期
安装后有些默认用户(比如SCOTT)可能是锁定状态,要是你记错了SYSTEM/SYS的密码也会报错。
还是用sqlplus / as sysdba登录,然后查用户状态:SELECT username, account_status, expiry_date FROM dba_users WHERE username IN ('SYSTEM', '你的用户名');如果显示
LOCKED,就解锁用户:ALTER USER 你的用户名 ACCOUNT UNLOCK;如果密码过期,就重置密码:
ALTER USER 你的用户名 IDENTIFIED BY 新密码;确认监听服务是否正常运行
打开命令提示符,输入lsnrctl status,看看监听状态是不是显示「READY」。要是没启动,输入lsnrctl start启动监听,再尝试连接。检查连接时的SID/服务名是否正确
Oracle 18c默认是CDB+PDB架构,要是你连的是PDB,得用对应的服务名(比如默认的ORCLPDB1),而不是CDB的SIDORCL。可以登录后查所有服务名:SELECT name FROM v$services;然后在SQL Developer的连接窗口里,切换到「Service Name」选项,填正确的服务名再测试。
内容的提问来源于stack exchange,提问作者Gobind

