无法连接到postgresql服务器django lightsail
无法连接到postgresql服务器django lightsail
我一直遇到无法连接到数据库的问题:
django.db.utils.OperationalError: 无法连接到服务器:没有该文件或目录 服务器是否在本地运行并接受 Unix域套接字“/opt/bitnami/postgresql/.s.PGSQL.5432/.s.PGSQL.5432”上的连接?
这是我的数据库列表:
数据库列表 名称 | 所有者 | 编码 | 排序规则 | 字符类型 | 访问权限 ------------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (3 行)
这是settings.py
中的postgres配置部分:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'postgres', 'HOST': '/opt/bitnami/postgresql/.s.PGSQL.5432', 'PORT': '5432', 'USER': 'postgres', 'PASSWORD': 'mypass' } }
我还尝试了这两个问题的答案:
这是pip list
:
psycopg2-binary==2.8.6
我的调试模式为false:
DEBUG = False
在允许的主机中,我有我的私有IP:
ALLOWED_HOSTS = ['XXX.XXX.XXX.XXX']
Bitnami文档中存在一些混淆。
文件回溯显示找不到文件:.s.PGSQL.5432
实际上,该文件位于/tmp
文件夹中。(别问我为什么)
如果你将settings.py更改为使用/tmp
文件夹作为Host,它将起作用:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'postgres', # 'HOST': '/opt/bitnami/postgresql', 'HOST': '/tmp/', 'PORT': '5432', 'USER': 'postgres', 'PASSWORD': '1234' } }
另一个选项是创建符号链接:
sudo ln -s /tmp/.s.PGSQL.5432 /opt/bitnami/postgresql/.s.PGSQL.5432
但我没有测试过。