1、连接数据库显示无监听程序,首先查看服务器的oracle监听服务是否开启
2、首先在客户端上配置服务和监听,顺序最好不要颠倒,先设置监听,再设置服务名,为防止主机重启ip地址更改,一定要把主机改成计算机名,监听和服务里面都是,更改完成后测试看能否连接成功,如果失败再查看主机的监听服务。
3、主机本地使用127.0.0.1可以连接,但使用本机IP或者localhost,则显示无监听,使用其他机器连接也是无监听,先排查一下防火墙问题。如果防火墙开启状态,开放1521端口,那也仍然要把防火墙关闭掉,因为在访问数据库的1521端口是还会调用其他端口,为避免麻烦,直接关闭。
4、排查防火墙后依旧没有解决,那么问题所在应该就锁定了:oracle数据库服务端的listener.ora文件,打开查看,果然,终于找到了问题所在:把localhost改成127.0.0.1,然后保存。
5、更改之后,要重启监听服务,方式有两种:
(1)windows +R——>services.msc——>打开服务——>重启对应监听服务
(2)使用cmd:
lsnrctl stop 停止监听服务
lsnrctl start 开始监听服务
lsnrctl reload 重启监听服务
lsnrctl status 查看监听服务状态
tnsping IP 查看该IP的监听服务是否正常
思考:
1、有些机子是无法识别主机设置的监听localhost的,所以尽量使用127.0.0.1,这样才能保证监听无误;
2、oracle client 在连接访问到主机之后,会读取主机oracle数据库目录下的listener.ora文件。
转载自:https://blog.csdn.net/lhjllff12345/article/details/50667037