虚拟机上可以正常访问数据库,但是在物理机上连接数据库时出现“ORA-12170:TNS:连接超时”时,可以用以下思路解决问题。

一、检查网络

1.ping ip地址 查看网络问题,看能否ping通;

2.tnsping  ip地址(或者是服务器的实例名SID)如果报“TNS-12535:操作超时“,可能是服务器端防火墙,没有关闭;

3.netstat -na 查看1521端口是否关闭

4.lsnrctl status  lsnrctl是listener-control 监听器的缩写,查看监听的状态

如果检查出来是防火墙的问题,则可以关闭防火墙或者修改防火墙规则来解决该问题(目前只遇到访问墙的问题)。

二、防火墙问题

2.1 关闭防火墙

chkconfig iptables off;#重启后失效

/etc/init.d/iptables stop;#立即失效

2.2修改防火墙规则

1)直接打开端口

iptables -I INPUT -p tcp --dport 1521 -j ACCEPT;#1521是端口号;

#如果要删除规则,就使用iptables -D INPUT number;

#number可以用/etc/init.d/iptables status来查看

#使用这种方式,机器重启或者防火墙关闭再打开,该规则失效。

2)永久打开某端口

首先,用vim打开防火墙配置文件:

vim /etc/sysconfig/iptables

然后,在iptables文件内容中,在默认的22端口下一行添加如下内容:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT

最后,保存配置文件后,执行如下命令重启防火墙:

/etc/init.d/iptables restart

#经过测试,在/etc/sysconfig/iptables中添加“-A……”这条内容是,在位置1添加语句,重启防火墙后可以连接数据库;在2处添加语句,重启防火墙后仍然是报“ORA-12170:TNS:连接超时”。

6920634e5e5ff07054e1d4f9e42eac0f.png

0b1331709591d260c1c78e86d0c51c18.png

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐