django - 与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 。谢谢你
解决方案
这个问题与 Celery 无关——它显然是一个典型的 PostgreSQL 访问控制问题。
似乎您的 PostgreSQL 服务器允许hamclassy
角色(用户)从运行 Django 的机器连接,但不允许您的 Celery 工作人员访问。寻找问题解决方案的正确位置是pg_hba.conf
PostgreSQL 服务器上的文件。
在大多数 Linux 发行版locate pg_hba.conf
上,应该为您提供文件的位置。Fedora 在这里:/var/lib/pgsql/data/pg_hba.conf
. 另一方面,Ubuntu 在 /etc/postgresql 中有它。(例如/etc/postgresql/9.6/main/pg_hba.conf
:)
推荐阅读
- php - 为什么 set_role 会导致内部服务器错误 500?
- c++ - 在运行时给定内存静态分配的变量
- node.js - 关闭 ubuntu 终端后,npm 会自行删除吗?
- php - PHP中未知的“rootform”测试渲染表单
- angular - 通过路由在两个页面之间传递非常大的对象的最佳方法
- python - 使用 Python 打开 Word 文档
- iterator - 用D语言从一个范围内制作数组
- python - 从 Python 中的多个特定子文件夹复制文件
- c++ - 为什么使用 string[i] 处理字符串后 string.length()=0?
- java - Spring 项目从其他 Spring 项目获取数据库配置