ocx_Oracle ORA-12541没有监听器

时间:2013-04-02 19:10:30

标签: python cx-oracle

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

db = cx_Oracle.connect('username','password',dsn_tns)

但它说databaseError:ORA-12541没有监听器

3 个答案:

答案 0 :(得分:1)

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

LISTENER =   (DESCRIPTION_LIST =     (DESCRIPTION =       (ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC1521))       (ADDRESS =(PROTOCOL = TCP)(主机= WN700014 )(PORT = 1521))     )   )

请参阅this post

答案 1 :(得分:1)

我能够通过db客户端连接(例如datagrip),但是当我从python脚本连接时,我得到了No Listener错误,因为我的原始连接字符串没有指定端口。我正在关注cx_Oracle doc

这个post通过这种方式指定端口帮助了我:

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)

答案 2 :(得分:0)

在我的情况下,这是因为我的服务器端口错误:

  

./ install_database_new.sh localhost:1511 XE full

我将端口更改为“1521”,我可以连接。