Psycopg2报告pg_hba.conf错误

时间:2012-05-21 23:33:24

标签: python postgresql psycopg2

在尝试使用PostgreSQL和Psycopg2时,我遇到了一个奇怪的情况。出于某种原因,每次我尝试通过python连接到postgre数据库时,都会出现以下错误:

psycopg2.OperationalError: FATAL:  no pg_hba.conf entry for host "127.0.0.1", user "steve", database "steve", SSL on
FATAL:  no pg_hba.conf entry for host "127.0.0.1", user "steve", database "steve", SSL off

当然,我检查了pg_hba.conf以查看问题所在,但就我所见,所有内容似乎都配置正确:

的pg_hba.conf:

# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

另外,我发现我可以通过psql连接数据库,如我所料:

$ psql -U steve -h 127.0.0.1
...
steve=>

任何人都对这里发生的事情有任何想法?提前谢谢!

2 个答案:

答案 0 :(得分:11)

典型解释包括:

  • 您正在连接错误的服务器 DB服务器是否与Python在同一主机上运行?

  • 你有错误的端口 如果发现连接尝试,请检查服务器日志。当然,您必须记录连接。请参阅config parameter log_connections

  • 更改pg_hba.conf后,您没有重新加载(SIGHUP)服务器 - 或重新加载错误的群集(如果您有多个数据库群集)。
    在Debian及其派生词上使用pg_ctlpg_ctlcluser

答案 1 :(得分:0)

我最近遇到了同样的问题,我找到了解决这个问题的方法。

系统:

  1. 我有一个应用服务器(安装了这些软件包pythondjangopsycopg2postgres client 9.6.1postgresql-9.6.1.tar.gz)),例如{{1 (私人地址)。
  2. AWS postgres RDS服务器“ip address 10.0.0.1”或任何数据库IP地址。
  3. 错误:

    aws_rds_host_name django.db.utils.OperationalError: FATAL: no pg_hba.conf entry for host

    <强>解决方案:

    在应用服务器"10.0.0.1", user "your_user", database "your_db", SSL off中安装postgres client 9.6.1源包时,我们必须传递参数“10.0.0.1”。我建议删除现有的--with-openssl并安装以下步骤。

    1. 下载postgres clientpostgres client source package 9.6.1
    2. 解开包postgresql-9.6.1.tar.gz
    3. postgresql-9.6.1.tar.gz参数对于消除该错误非常重要)
    4. 使
    5. make install
    6. 成功安装后,当我们使用./configure --prefix="your_preferred_postgres_path_if_needed" --with-openssl (this '--with-openssl'运行django项目时未发生该错误。
    7. 我希望这个解决方案有助于某人。