繁体   English   中英

psql:错误:无法连接到服务器:致命:角色“postgres”不存在

[英]psql: error: could not connect to server: FATAL: role "postgres" does not exist

我已经“dockerized”了一个 Django/PostgreSQL 应用程序并尝试连接到我的数据库 我有 2 个容器:web et db 它工作但我无法连接到我的 postgresql 数据库

我曾经运行docker exec -it coverage_africa_db_1 psql -U postgres但出现错误

psql:错误:无法连接到服务器:致命:角色“postgres”不存在

我尝试通过运行命令docker exec -it aab213f730cd bash来“跳入”我的容器,并尝试使用 psql 命令进行连接...

psql -d 数据库开发

psql:错误:无法连接到服务器:致命:角色“root”不存在

要么

psql -U postgres

错误:无法连接到服务器:致命:角色“postgres”不存在

事实上,没有一个 psql 选项有效......

.env.dev

SECRET_KEY=*************************************
DEBUG=1
DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1 [::1]
SQL_ENGINE=django.db.backends.postgresql
SQL_DATABASE=db_dev
SQL_USER=user
SQL_PASSWORD=user
SQL_HOST=db
SQL_PORT=5432
DATABASE=postgres
DJANGO_SETTINGS_MODULE=core.settings.dev

docker-compose.yml

version: '3.7'

services:
    web:
        build: ./app
        restart: always
        command: python manage.py runserver 0.0.0.0:8000
        volumes:
            - ./app/:/usr/src/app
        ports:
            - 8000:8000
        env_file:
            - ./.env.dev
        depends_on: 
            - db
    db:
        image: postgres:12.0-alpine
        restart: always
        volumes:
            - postgres_data:/var/lib/postgres/data/
        environment:
            - POSTGRES_USER=user
            - POSTGRES_PASSWORD=user
            - POSTGRES_DB=db_dev
volumes:
    postgres_data:

使用 postgres 容器,这:

environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=user
- POSTGRES_DB=db_dev

定义数据库的初始化方式。 如果您没有更改它,您应该能够以用户“user”和密码“user”的身份连接。

如果您确实更改了它,那么实际值就是第一次启动时出现的值。 首次启动后,这些凭据将写入数据库,这些数据位于postgres_data卷上。 如果要删除数据并使用新凭据重新初始化数据库,请使用docker-compose down -v

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM