当我设置的芹菜任务执行时,当它试图从数据库中获取对象时,会引发以下异常:
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运行时才会发生这种情况。请问我该怎么修?
我的"主机"设置是settings.py.中的空字符串"
堆栈
Python 2.7.10,Django 1.8.5
您的pg_hba.conf似乎被设置为对本地套接字连接使用对等身份验证,这意味着如果您以Linux用户"chris"的身份登录,则只能以Postgres用户"chrs"的身份连接。您的应用程序可能使用IP连接而不是套接字连接,并且将受到不同的身份验证规则的约束。
您可以通过以下任一方式解决此问题:
- 以用户"chris"的身份运行Celery
- 更改pg_hba.conf以对此特定用户和连接类型使用某种形式的密码身份验证
- 通过将"host"设置为"127.0.0.1",将Celery配置为使用IP连接