首页 > 解决方案 > 与postgresql有关的芹菜错误,而django可以

问题描述

我在我的 django 项目中使用了 celery .django 正在运行 uWSGI 并且可以很好地与 postgresql 一起使用,但似乎 celery 无法连接到 postgresql:

Traceback (most recent call last):
  File "/home/classgram/www/env/lib/python3.6/site-packages/django/db/backends/base/base.py", line 216, in ensure_connection
    self.connect()
  File "/home/classgram/www/env/lib/python3.6/site-packages/django/db/backends/base/base.py", line 194, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/home/classgram/www/env/lib/python3.6/site-packages/django/db/backends/postgresql/base.py", line 178, in get_new_connection
    connection = Database.connect(**conn_params)
  File "/home/classgram/www/env/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATAL:  password authentication failed for user "hamclassy"
FATAL:  password authentication failed for user "hamclassy"

我正在研究主机,主机操作系统是 Ubuntu 18.04 。谢谢你

标签: djangopostgresqlceleryubuntu-18.04

解决方案


这个问题与 Celery 无关——它显然是一个典型的 PostgreSQL 访问控制问题。

似乎您的 PostgreSQL 服务器允许hamclassy角色(用户)从运行 Django 的机器连接,但不允许您的 Celery 工作人员访问。寻找问题解决方案的正确位置是pg_hba.confPostgreSQL 服务器上的文件。

在大多数 Linux 发行版locate pg_hba.conf上,应该为您提供文件的位置。Fedora 在这里:/var/lib/pgsql/data/pg_hba.conf. 另一方面,Ubuntu 在 /etc/postgresql 中有它。(例如/etc/postgresql/9.6/main/pg_hba.conf:)


推荐阅读