Linux 下连接 Oracle 数据库失败 的原因很多,常见可归纳为以下几类。你可以先对照看看属于哪种情况。
lsnrctl status
如果失败或没有对应服务:
lsnrctl start
# 查看端口是否通
telnet ip 1521
# 或
nc -zv ip 1521
防火墙示例:
systemctl status firewalld
firewall-cmd --add-port=1521/tcp --permanent
firewall-cmd --reload
检查:
tnsnames.oralistener.ora/etc/hosts典型 tnsnames.ora:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
(CONNECT_DATA = (SERVICE_NAME = orcl))
)
测试:
tnsping ORCL
echo $ORACLE_HOME
echo $PATH
常见错误:
sqlplus / as sysdba
startup
ALTER SYSTEM REGISTER;
SELECT username, account_status FROM dba_users;
ALTER USER user_name ACCOUNT UNLOCK;
oinstall / dba 组id
getenforce
setenforce 0 # 临时关闭
| 报错 | 原因 |
|---|---|
| ORA-12170 | 连接超时(网络/防火墙) |
| ORA-12541 | 监听未启动 |
| ORA-12514 | 服务名不正确 |
| ORA-01017 | 用户名/密码错误 |
| ORA-28000 | 账号被锁 |
ping iptelnet ip 1521lsnrctl statustnsping 服务名sqlplus 用户/密码@服务名如果你能贴出:
我可以更精确地帮你定位问题。