【问题标题】:Peer authentication fails with PostgreSQL in celery task芹菜任务中的 PostgreSQL 对等身份验证失败
【发布时间】:2016-03-19 18:07:03
【问题描述】:

执行我设置的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 运行任务时发生。请问如何解决这个问题?

我的“主机”设置是 settings.py 中的一个空字符串“”。

堆栈

Python 2.7.10, Django 1.8.5

【问题讨论】:

  • 相同的凭据是否适用于实际的 django 应用程序?
  • @BurhanKhalid 是的,实际应用运行良好 - 我可以使用管理员或 api 添加、编辑和删除。
  • 使用同一个用户帐号?
  • @NickBarnes Thx - 你对克里斯提示我没有跑步的评论..我已将 Celery 的用户设置为“nobody”。将其更改为克里斯解决了它。如果您粘贴您的评论作为答案,我会接受。

标签: django postgresql celery


【解决方案1】:

您的pg_hba.conf 似乎设置为对本地套接字连接使用对等身份验证,这意味着如果您以 Linux 用户“chris”的身份登录,您只能以 Postgres 用户“chris”的身份进行连接。您的应用可能使用的是 IP 连接而不是套接字连接,并且将遵循不同的身份验证规则。

您可以通过以下任一方式解决此问题:

  • 以用户“chris”的身份运行 Celery
  • 更改 pg_hba.conf 以对该特定用户和连接类型使用某种形式的密码身份验证
  • 通过将“host”设置为“127.0.0.1”,将 Celery 配置为使用 IP 连接

【讨论】:

    猜你喜欢
    • 2014-03-17
    • 2020-11-30
    • 2014-07-15
    • 2014-11-03
    • 2011-12-31
    • 2013-07-23
    • 1970-01-01
    • 2015-06-18
    • 2013-02-24
    相关资源
    最近更新 更多