Ben*_*ari 1 django postgresql psql docker docker-compose
我想在 Postgres 交互式 shell 中运行查询。为此,我正在使用 docker 容器,如下所示:
这是 docker-compose 的相关部分:
db_of_ivms:
image: postgres:10
restart: unless-stopped
ports:
- 5432:5432
container_name: db_of_ivms
environment:
POSTGRES_PASSWORD: xxx
POSTGRES_USER: ivms_usr
POSTGRES_DB: ivms_db
Run Code Online (Sandbox Code Playgroud)
尽管如此,我正在处理这个错误:
docker exec -it -u 0 db_of_ivms bash
# psql
psql: FATAL: role "root" does not exist
Run Code Online (Sandbox Code Playgroud)
你需要 postgres 用户的 shell
docker exec -it -u postgres db_of_ivms bash
Run Code Online (Sandbox Code Playgroud)
现在对于您未指定的容器POSTGRES_USER: ivms_usr:
postgres@d9b097b8db8c:/$ psql
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+------------+------------+-----------------------
postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
(3 rows)
Run Code Online (Sandbox Code Playgroud)
如果您指定POSTGRES_USER: ivms_usr和数据库(注意 psql 命令参数):
docker exec -it -u postgres db_of_ivms bash
postgres@2cec2435bb83:/$ psql -U ivms_usr -d ivms_db
psql (10.12 (Debian 10.12-1.pgdg90+1))
Type "help" for help.
ivms_db=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+------------+------------+-----------------------
ivms_db | ivms_usr | UTF8 | en_US.utf8 | en_US.utf8 |
postgres | ivms_usr | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | ivms_usr | UTF8 | en_US.utf8 | en_US.utf8 | =c/ivms_usr +
| | | | | ivms_usr=CTc/ivms_usr
template1 | ivms_usr | UTF8 | en_US.utf8 | en_US.utf8 | =c/ivms_usr +
| | | | | ivms_usr=CTc/ivms_usr
(4 rows)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1349 次 |
| 最近记录: |