我尝试通过cx_Oracle连接到远程oracle服务器:
db = cx_Oracle.connect('username','password',dsn_tns)
但它说databaseError:ORA-12541没有监听器
答案 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”,我可以连接。