无法连接到postgresql服务器django lightsail

12 浏览
0 Comments

无法连接到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']

0
0 Comments

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

但我没有测试过。

0