版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/king0406/article/details/73929163
今天遇到的数据库连接时报错:
Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
这个问题是数据库监听的配置文件中sid不正确,网上查了原因,也许是网络配置ip之后出现的问题,而公司的云服务器之前正常没问题,最近管理员确实改过网络配置,并且今天重启了。
解决:进入数据库安装目录下,找到tnsnames.ora文件,把其中的service_name改成数据库正确的sid值,如我的是orcl
\network\admin\tnsnames.ora:
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.62)(PORT = 1521))
(CONNECT_DATA =
(SERVER = ORCL)
(SERVICE_NAME = ORCL)
)
重启监听即可
若是碰到继续报错:17410 提示无法从套接字获取更多数据如何解决,则进入数据库安装目录下,找到listener.ora文件,将(PROGRAM = extproc)这行前面加#注释掉,如下:
#(PROGRAM = extproc)
并且,检查配置文件中HOST是否为主机名
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 主机名)(PORT = 1521))
)
重启监听,数据库即可连接