第一部分解决的是连接超时问题,是云服务器上面的一些配置问题
第二部分正式在windows上安装oracle instant client
一、本人所具有相关的一些环境
远程:
腾讯云服务器 centos7.5 64位 已安装好oracle11g(oracle安装教程见上一篇博客)
- 本地:
windows10,navicat15
二、安装及连接过程
1、首先看navicat连接oracle需要一些什么信息。
新建连接所需信息如上图所示,需要注意的点:
主机:填写云服务器的公网ip
服务器名:service name(后面会介绍,连得时候踩的大坑)
用户名、密码:我使用的是oracle数据库里面的自己创建的用户
2、我尝试接填写信息点击测试连接,会发现报错,显示超时timeout(ORA-12170: TNS:Connect timeout occurred)。如果这样的话,请按以下步骤来一一检查,参考ORA-12170:TNS:连接超时 - 潇湘隐者 - 博客园 :
(1)检查网络是否能ping通过:
在windows下打开命令行窗口输入
ping xx.xx.xx.xx
ping的是公网地址。说明网络是畅通的。
(2)检查tns配置和监听服务的配置:
TNS配置:是oracle net的一部分,是用于管理oracle数据库和客户端连接的工具,配置文件名为tnsnames.ora,默认路径是
%ORACLE_HOME%/network/admin/tnsnames.ora
Listener监听配置:oracle用于配置监听器的文件,配置文件名为listener.ora,默认路径是
%ORACLE_HOME%\network\admin\listener.ora
配置文件的最基础的内容如图上面两个图所示(分别是tnenames.ora和listener.ora里面的内容)
(3)检查没有问题的话,查看服务器监听服务是否启动:
有关监听器的操作:
lsnrctl start
监听器打开
lsnrctl status
监听器状态
lsnrctl stop
关闭监听器
在此处使用lsnrctl status,正常启动了的话会是下面的样子:
正常启动了的请忽略下面的,直接去下一步
我在此步遇到的问题,发现监听都无法打开:
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=VM-0-6-centos)
(PORT=1521)))xxxxx
查询有关资料发现,好像是因为hostname的原因,是由于/etc/hosts文件引起的错误。
因为我的云服务器上先安装了oracle,后来为了配置hadoop的结点,改了hostname,但是原来安装oracle的时候也进行过hostname的相关配置,导致两者不统一,于是需要进行修改。
可以使用hostname命令查看服务器名字,会发现,我的hostname是Datanode2,而在前面查看tns和Listener的配置文件是会发现,那个地方的HOST=VM-0-6-centos,这是有矛盾的。但是我不能把名字改回去,所以,就去查了如何在安装了oracle数据库后修改ORACLE_HOSTNAME。
借鉴: 在linux上安装完oracle数据库后,如何修改ORACLE_HOSTNAME - 酸奶加绿茶 - 博客园 Error listening on: (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) TNS-12545: Connect failed because tar_liuying6629的博客-CSDN博客
第一步:已经在/etc/hosts修改了名字,如下图中
第二步:回到root用户,修改
vi /etc/sysconfig/network
,添加如下代码:
第三步:切换oracle用户,进入到oracle目录下的
cd /ifs/oracle/home/oracle_11g/network/admin
(前面是我的oracle安装路径),发现了tns和listen文件,对其中的内容进行修改。
改完后如下(只用改名字即可,改的时候不小心删了个括号出去启动又报错了哈哈哈醉了):
第四步:启动监听
第五步:查看状态,现在监听启动成功
(4)用tnsping检查(就是检查oracle网络是否可以被接受,如果服务器上都不能接受更不用说别的了),发现 TNS-12535:TNS:operation timed out,超时考虑防火墙
使用
iptables-save
查看开放的端口,发现oracle端口1521并没有打开,于是把它打开
firewall-cmd --zone=public --add-port=1521/tcp –permanent
然后再重载
firewall-cmd –reload
再使用iptables-save查看发现已经打开了
iptables -L -n
也可以看
此时再次使用tnsping命令,发现是ok的:
第一部分到这结束
第二部分安装oracle instant client