Ubuntu 下连接 Oracle 失败,原因很多,可以按下面步骤一步步排查。
你是用哪种方式连 Oracle?
不同方式,问题点不一样。
在 Oracle 服务器上执行:
lsnrctl status
command not found → 没装客户端/环境变量没配lsnrctl start
数据库是否 open:
sqlplus / as sysdba
select status from v$instance;
在 Ubuntu 客户端测试:
ping Oracle服务器IP
telnet OracleIP 1521
或:
nc -zv OracleIP 1521
❌ 不通 → 防火墙 / 安全组 / 网络问题
Ubuntu 上通常装:
oracle-instantclientsqlplus检查:
which sqlplus
没有就装:
sudo apt install oracle-instantclient-basic
echo $ORACLE_HOME
echo $LD_LIBRARY_PATH
echo $TNS_ADMIN
常见配置:
export ORACLE_HOME=/usr/lib/oracle/21/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
示例:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
测试:
tnsping ORCL
| 报错 | 原因 |
|---|---|
| ORA-12170 | 超时,网络/防火墙 |
| ORA-12541 | listener 没启动 |
| ORA-12514 | service_name 错 |
| ORA-01017 | 用户名/密码错 |
| ORA-12545 | HOST 错 |
你可以把下面输出贴出来,我帮你精准判断:
lsnrctl status
tnsping 你的连接名
sqlplus 用户/密码@连接名
你可以告诉我:
我可以直接给你一套可用的配置示例。