温馨提示×

ubuntu oracle为何连接失败

小樊
34
2026-09-10 18:52:29
栏目: 云计算

在 Ubuntu 上连接 Oracle 数据库失败,原因通常可以归为以下几类。你可以对照排查:


一、网络与监听问题(最常见)

1. 数据库监听未启动

Oracle 服务器上执行:

lsnrctl status

如果没启动:

lsnrctl start

2. 端口或 IP 不通

默认端口是 1521。 在 Ubuntu 客户端测试:

telnet <oracle_ip> 1521
# 或
nc -zv <oracle_ip> 1521

不通说明:

  • 防火墙拦截
  • Oracle 监听绑定了错误 IP

二、Oracle 客户端配置问题

1. tnsnames.ora 配置错误

示例:

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

检查:

  • HOST 是否正确
  • SERVICE_NAME / SID 是否匹配

测试:

tnsping ORCL

三、Oracle 服务本身问题

1. 数据库未启动

在 Oracle 服务器:

sqlplus / as sysdba
SQL> startup

2. 使用了 SID 而非 SERVICE_NAME

Oracle 12c+ 推荐用:

SERVICE_NAME=orclpdb

而不是 SID。


四、Ubuntu 环境常见问题

1. 缺少 Oracle 客户端库

常见错误:

  • libclntsh.so not found
  • ORA-12545

解决:

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

2. 字符集 / 环境问题

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

五、常见错误码速查

错误码 含义
ORA-12170 连接超时(网络/防火墙)
ORA-12541 无监听
ORA-12514 监听不识别服务名
ORA-01017 用户名/密码错误
ORA-12545 主机或端口不可达

六、快速自查清单 ✅

  • [ ] 服务器 lsnrctl status 正常
  • [ ] 端口 1521 可通
  • [ ] tnsnames.ora 正确
  • [ ] 数据库已 open
  • [ ] 客户端环境变量配置正确

如果你愿意,可以把 具体报错信息(如 ORA-xxxxx)或 连接方式(sqlplus / JDBC / Python)发出来,我可以精准定位原因。

0