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

时间:2020-09-21 17:23:53

标签: postgresql docker

我已经“ docker化”了Django / PostgreSQL应用,并尝试连接到我的数据库 我有2个容器:web和db 它可以工作,但是我无法连接到我的Postgresql数据库

我曾经跑过docker exec -it coverage_africa_db_1 psql -U postgres,但遇到错误

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

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

psql -d db_dev

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

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:

1 个答案:

答案 0 :(得分:0)

对于postgres容器,此:

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

定义如何初始化数据库。如果您没有进行更改,则应该能够以用户“ user”的身份使用密码“ user”进行连接。

如果您确实进行了更改,则实际值是首次启动时出现的值。首次启动后,这些凭据将写入数据库,该数据在postgres_data卷上。如果要删除数据并使用新凭据重新初始化数据库,请使用docker-compose down -v