芹菜任务中的 PostgreSQL 对等身份验证失败
Peer authentication fails with PostgreSQL in celery task
当执行我设置的 celery 任务时,当它试图从数据库中获取对象时抛出以下异常:
File "/usr/local/lib/python2.7/dist-packages/psycopg2/__init__.py", line 164, in connect
conn = _connect(dsn, connection_factory=connection_factory, async=async)
OperationalError: FATAL: Peer authentication failed for user "chris"
只有当 Celery 的任务是 运行 时才会出现这种情况。请问我该如何解决这个问题?
我的 "host" 设置是 settings.py 中的空字符串 ""。
堆栈
Python 2.7.10,
Django 1.8.5
您的 pg_hba.conf 似乎设置为对本地套接字连接使用对等身份验证,这意味着如果您以 [=28] 身份登录,则只能作为 Postgres 用户 "chris" =] 用户 "chris"。您的应用可能正在使用 IP 连接而不是套接字连接,并且将遵循不同的身份验证规则。
您可以通过以下任一方式解决此问题:
- 运行 芹菜作为用户 "chris"
- 更改 pg_hba.conf 以针对此特定用户和连接类型使用某种形式的密码验证
- 将 Celery 配置为使用 IP 连接,方法是将 "host" 设置为“127.0.0.1”
当执行我设置的 celery 任务时,当它试图从数据库中获取对象时抛出以下异常:
File "/usr/local/lib/python2.7/dist-packages/psycopg2/__init__.py", line 164, in connect
conn = _connect(dsn, connection_factory=connection_factory, async=async)
OperationalError: FATAL: Peer authentication failed for user "chris"
只有当 Celery 的任务是 运行 时才会出现这种情况。请问我该如何解决这个问题?
我的 "host" 设置是 settings.py 中的空字符串 ""。
堆栈
Python 2.7.10, Django 1.8.5
您的 pg_hba.conf 似乎设置为对本地套接字连接使用对等身份验证,这意味着如果您以 [=28] 身份登录,则只能作为 Postgres 用户 "chris" =] 用户 "chris"。您的应用可能正在使用 IP 连接而不是套接字连接,并且将遵循不同的身份验证规则。
您可以通过以下任一方式解决此问题:
- 运行 芹菜作为用户 "chris"
- 更改 pg_hba.conf 以针对此特定用户和连接类型使用某种形式的密码验证
- 将 Celery 配置为使用 IP 连接,方法是将 "host" 设置为“127.0.0.1”