psycopg2和postgresql的远程连接问题



我正在尝试使用以下python代码连接到postgresql数据库:

try:
    conn = psycopg2.connect("host = '10.47.65.237' dbname = 'testDB' user = 'pi' password = 'raspberry'")
except:
    print("Unable to connect to testDB at 10.47.65.237. Sending Alert.")

此代码适用于localhost 127.0.0.1,但当我转到另一台机器并尝试使用其ip以上运行它时,它将无法连接。

我做过的事情:1. 5432端口已打开2. 编辑postgresql.conf,添加一行"listen_addresses='10.47.65.138'"3.编辑pg_hba.conf,添加如下配置"host all all 10.47.65.138 md5"

还有什么我可以尝试或者我错过的吗?

在客户端上运行telnet 10.47.65.237 5432应该会导致Connection Refused错误,这表明问题与psycopg2无关。

服务器配置错误。listen_addresses控制服务器应答的ip,而不是服务器允许连接的ip。您的服务器的postgresql.conf应该有listen_addresses='10.47.65.237'listen_addresses='*'。编辑配置并重新启动服务器上的PostgreSQL,然后您应该能够使用telnet和psycopg2成功连接。

最新更新