无法通过Python的psycopg2连接到Postgresql DB

时间:2015-06-17 21:28:25

标签: python postgresql

我一直在使用带有pgAdmin3的postgres数据库,并且从未遇到过连接数据库的任何问题。今天我尝试使用以下代码通过Python访问数据库:

import psycopg2
conn_string = "dbname='db0r0373s42fkg' user='ucaj9jki7hfthu' host='ec2-107-20-189-29.compute-1.amazonaws.com' password='secret'"
conn = psycopg2.connect(conn_string)
conn.close()

我收到以下错误:

FATAL:  no pg_hba.conf entry for host "207.204.247.209", user "ucaj9jki7hfthu", database "db0r0373s42fkg", SSL off

从浏览此站点看,当数据库未设置为允许我使用这些凭据登录时,似乎发生错误,但为什么它通过pgadmin而不是Python工作?

我看到另一个帖子有类似的问题(Psycopg2 reporting pg_hba.conf error),但我不太明白他们的答案,我不确定我是否遇到同样的问题 非常感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

你检查过海报说检查的内容吗?
在您的服务器上运行以下命令:
cd /etc/postgresql/9.1/main/postgresql.conf

它可能不是同一个版本所以看9.1但几乎导航到postgresql.conf。在此文件中将列出端口。如果从同一台机器运行,请确保它们不使用相同的端口。 pgadmin正在使用5432,所以请确保该文件也是如此。

答案 1 :(得分:0)

您似乎遇到与this question相同的问题:您未通过SSL进行连接。尝试将sslmode='require'传递给psycopg2.connect