我正在尝试使用以下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成功连接。