项目部署在Linux服务器上,使用plsql远程连接服务器上的Oracle数据库:
在tnsnames.ora文件中添加内容如下:
第一个红框表示数据库定义远程服务器的在本地主机名(随意输入)
第二个红框表示远程服务器ip地址
第三个红框表示远程服务器的数据库实例名
测试能否打开,如若不能,修改plsql配置:
工具------>首选项
登录仍然不能连接,报错ORA-12170:TNS-12170:TNS连接超时
1、打开cmd测试服务器ip地址能否ping通
测试可以ping通
2、使用tnsping命令检查,报TNS-12535: TNS: 操作超时,这时我们可以肯定是防火墙的问题了
3、检查服务器防火墙状态service iptables status
报错Redirecting to /bin/systemctl status iptables.service
Unit iptables.service could not be found.
在CentOS 7或RHEL 7或Fedora中防火墙由firewalld来管理
如果要添加范围例外端口 如 1000-2000
语法命令如下:启用区域端口和协议组合
firewall-cmd [--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]
此举将启用端口和协议的组合。端口可以是一个单独的端口 <port> 或者是一个端口范围 <port>-<port> 。协议可以是 tcp 或 udp。
实际命令如下:
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone=public --query-port=80/tcp
删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent
我使用的是如下的传统方式:
执行以下命令:
systemctl stop firewalld
systemctl mask firewalld
安装iptables-services:
yum install iptables-services
设置开机启动:
systemctl enable iptables
保存设置:
service iptables save
查看防火墙状态:
关闭防火墙状态:
到此,再次登录plsql远程连接服务器Oracle数据库连接成功。