Docker run中POSTGRES_DB与POSTGRES_USER配置不生效问题求助
解决PostgreSQL容器连接报错“database 'root' does not exist”的问题
问题原因
你执行psql -U root时,psql默认会尝试连接和用户名同名的数据库。但你创建容器时指定的数据库是mydb,并没有名为root的数据库,所以触发报错。
解决方案
直接在连接命令里指定要连接的数据库mydb即可,有两种方式:
- 直接执行完整连接命令:
docker exec -it psql-instance psql -U root -d mydb - 先进入容器终端,再连接数据库:
docker exec -it psql-instance bash # 进入容器后执行 psql -U root mydb
如果后续希望默认连接的数据库和用户名一致,可以重新创建容器时,把POSTGRES_DB的值设为和POSTGRES_USER相同(比如都设为root),这样直接用psql -U root就能正常连接。
内容的提问来源于stack exchange,提问作者darkstar
相关产品推荐
相关产品推荐

