ocx_Oracle ORA-12541 tns 没有侦听器

use*_*504 6 python cx-oracle

我尝试通过 cx_Oracle 连接到远程 oracle 服务器:

db = cx_Oracle.connect('用户名', '密码', dsn_tns)

但它说 databaseError: ORA-12541 tns no listener

emi*_*ily 6

我能够通过数据库客户端(例如 datagrip)进行连接,但是当我从 python 脚本连接时,我收到了“无侦听器”错误,因为我的原始连接字符串没有指定端口。我正在关注cx_Oracle 文档

这篇文章通过以下方式指定端口帮助我:

ip = '192.168.0.1'
port = 1521
SID = 'YOURSIDHERE'
dsn_tns = cx_Oracle.makedsn(ip, port, SID)

db = cx_Oracle.connect('username', 'password', dsn_tns)
Run Code Online (Sandbox Code Playgroud)


小智 2

如果listener.ora 文件(在Oracle 服务器本身上)配置为侦听“localhost”而不是计算机名称,则可能会发生此错误。

监听器 = (DESCRIPTION_LIST = (DESCRIPTION = (地址 = (协议 = IPC)(KEY = EXTPROC1521)) (地址 = (协议 = TCP)(主机 = WN700014 )(端口 = 1521)) ) )

请参阅此帖子