Docker role creation error - role ___ does not exist
我是Docker的新手,我正试图用Postgres运行它。 然后我尝试运行python测试用例,这些测试用例适用于其他人而不是我。
以下错误告诉我Docker可能正在努力创建角色
E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError)
FATAL: role"foo" does not exist
另一个错误:
E psycopg2.OperationalError: FATAL: role"foo" does not exist
Postgresql版本:
1 2 | PostgreSQL 9.6.5 on x86_64-apple-darwin16.7.0, compiled by Apple LLVM version 8.1.0 (clang-802.0.42), 64-bit (1 row) |
Docker版本
1 | Version 17.06.2-ce-mac27 (19124) |
使用此脚本运行Docker:
1 | docker run -p 5432:5432 --env POSTGRES_PASSWORD="bar" --env POSTGRES_USER="foo" --env POSTGRES_DB="mydb" postgres |
脚本输出:如您所见,它表示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | The files belonging to this database system will be owned by user"postgres". This user must also own the server process. The database cluster will be initialized with locale"en_US.utf8". The default database encoding has accordingly been set to"UTF8". The default text search configuration will be set to"english". Data page checksums are disabled. fixing permissions on existing directory /var/lib/postgresql/data ... ok creating subdirectories ... ok selecting default max_connections ... 100 selecting default shared_buffers ... 128MB selecting dynamic shared memory implementation ... posix creating configuration files ... ok running bootstrap script ... ok performing post-bootstrap initialization ... ok syncing data to disk ... ok Success. You can now start the database server using: pg_ctl -D /var/lib/postgresql/data -l logfile start WARNING: enabling"trust" authentication for local connections You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb. waiting for server to start....LOG: could not bind IPv6 socket: Cannot assign requested address HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry. LOG: database system was shut down at 2017-09-26 21:28:17 UTC LOG: MultiXact member wraparound protections are now enabled LOG: database system is ready to accept connections LOG: autovacuum launcher started done server started CREATE DATABASE CREATE ROLE /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/* LOG: received fast shutdown request LOG: aborting any active transactions LOG: autovacuum launcher shutting down waiting for server to shut down....LOG: shutting down LOG: database system is shut down done server stopped PostgreSQL init process complete; ready for start up. LOG: database system was shut down at 2017-09-26 21:28:19 UTC LOG: MultiXact member wraparound protections are now enabled LOG: database system is ready to accept connections LOG: autovacuum launcher started |
编辑
1 2 3 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bbab7eb98fcf postgres "docker-entrypoint..." 10 seconds ago Up 11 seconds 0.0.0.0:5432->5432/tcp hardcore_wilson a6a1e2e313b8 postgres "docker-entrypoint..." 16 minutes ago Exited (0) 6 minutes ago nervous_banach |
看起来像psycopg2尝试本地套接字连接。 如果是通过TCP连接,您会看到以下异常:
password authentication failed for user"foo"
容器日志中的错误:
1 2 3 | FATAL: password authentication failed for user"foo" DETAIL: Role"foo" does not exist. Connection matched pg_hba.conf line 95:"host all all all md5" |
确保已设置
编辑:
当传递