Ubuntu 连接 Oracle 数据库失败 原因很多,下面按最常见场景给你一个排查清单 + 解决方案,你可以对照着一步步来。
在排查前,先确认:
sqlplusORA-xxxxx)Oracle 默认端口是 1521
telnet IP 1521
# 或
nc -vz IP 1521
❌ 不通 → 说明:
✅ 通 → 继续往下
在 Oracle 服务器执行:
lsnrctl status
如果没启动:
lsnrctl start
Ubuntu 默认没有 Oracle 客户端
sudo apt update
sudo apt install unzip libaio1
下载:
解压后:
export LD_LIBRARY_PATH=/path/to/instantclient
export PATH=$PATH:/path/to/instantclient
测试:
sqlplus user/password@//IP:1521/服务名
常见错误:
listener does not currently know of service
解决:
select name from v$services;
确认 SERVICE_NAME,不是 SID
sqlplus user/password@//192.168.1.10:1521/orclpdb
sqlplus user/password@192.168.1.10:1521:orcl
中文乱码常导致“看起来连不上”
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
import oracledb
oracledb.init_oracle_client(lib_dir="/path/to/instantclient")
conn = oracledb.connect(
user="user",
password="pwd",
host="IP",
port=1521,
service_name="orclpdb"
)
常见错误:
DPI-1047 → 没装 Instant ClientORA-12154 → tnsnames 配置错你可以一条条对照:
你可以直接把下面信息发我,我帮你精确到“哪一行错了”:
比如:
ORA-12541: TNS:no listener
我可以一步一步带你修 ✅