6

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

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

但它说 databaseError: ORA-12541 tns no listener

4

3 回答 3

4

我能够通过 db 客户端(例如 datagrip)进行连接,但是当我从 python 脚本连接时出现 No Listener 错误,因为我的原始连接字符串没有指定端口。我在关注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)
于 2018-02-09T03:13:53.583 回答
2

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

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

看到这个帖子

于 2013-08-15T13:15:21.753 回答
1

就我而言,这是由于我的服务器端口错误:

./install_database_new.sh localhost:1511 XE 已满

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

于 2017-10-13T10:51:41.153 回答