在 Ubuntu 上连接 Oracle 数据库失败,原因通常可以归为以下几类。你可以对照排查:
在 Oracle 服务器上执行:
lsnrctl status
如果没启动:
lsnrctl start
默认端口是 1521。 在 Ubuntu 客户端测试:
telnet <oracle_ip> 1521
# 或
nc -zv <oracle_ip> 1521
不通说明:
示例:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
检查:
测试:
tnsping ORCL
在 Oracle 服务器:
sqlplus / as sysdba
SQL> startup
Oracle 12c+ 推荐用:
SERVICE_NAME=orclpdb
而不是 SID。
常见错误:
libclntsh.so not foundORA-12545解决:
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
| 错误码 | 含义 |
|---|---|
| ORA-12170 | 连接超时(网络/防火墙) |
| ORA-12541 | 无监听 |
| ORA-12514 | 监听不识别服务名 |
| ORA-01017 | 用户名/密码错误 |
| ORA-12545 | 主机或端口不可达 |
lsnrctl status 正常open如果你愿意,可以把 具体报错信息(如 ORA-xxxxx)或 连接方式(sqlplus / JDBC / Python)发出来,我可以精准定位原因。