在套接字“/var/run/postgresql/.s.PGSQL.5432”上连接到服务器失败:致命:角色“rootuser”不存在

问题描述 投票:0回答:2

我正在尝试在 digitalocean Droplet 上连接部署 django 后端和 postgres db。但是在gunicorn和nginx设置之后它给了我这个错误:

connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  role "rootuser" does not exist`

“rootuser”是我的root用户名而不是数据库用户名,我的数据库用户名是dbadmin

我尝试创建名为 serverroot 的数据库用户,它有效,但开始抛出其他错误:

relation "django_site" does not exist LINE 1: ..."django_site"."domain", "django_site"."name" FROM "django_si...
django postgresql django-rest-framework digital-ocean
2个回答
0
投票

查看有关设置文件的文档:https://docs.djangoproject.com/en/4.1/topics/settings/

寻找这样的部分:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': YOUR_DB_NAME,
            'USER': USERNAME,
            'PASSWORD': PASSWORD_FOR_DB,
            'HOST': 'localhost'  // in Development.
        }
    }

然后将

NAME
USER
PASSWORD
HOST
值更改为您需要的值。


0
投票

默认情况下,Linux 上的“root”用户无法直接访问 PostgreSQL,因为存在安全风险。 PostgreSQL 通常通过“postgres”系统用户或具有适当权限的其他专用角色进行管理。

1.切换到 PostgreSQL 用户:在 Ubuntu 上,PostgreSQL 通常设置为使用“postgres”系统用户。您应该在运行 psql 之前切换到该用户。您可以使用 su 命令来执行此操作:

sudo su - postgres

2.运行psql:一旦你是“postgres”用户,你就可以运行psql:

psql

You can refer to my screenshot image..

© www.soinside.com 2019 - 2024. All rights reserved.