我执行的步骤与中所述的步骤相同:https://medium.com/better-programming/connect-from-local-machine-to-postgresql-docker-container-f785f00461a7
但当我尝试从Intellij连接到我的postgres(使用密码mysecretpassword)时,我得到以下错误:
The specified database user/password combination is rejected: [28P01] FATAL: password authentication failed for user "postgres"
当然,我可以通过cmd命令连接到我的数据库:
$ psql -h localhost -p 5432 -U postgres -W Password for user postgres:
psql (9.5.5, server 10.3 (Debian 10.3-1.pgdg90+1)) WARNING: psql major version 9.5, server major version 10. Some psql features might not work.
Type "help" for help. postgres=# \l
我的容器已启动:
这是怎么回事?我不知道...我在Intellij中使用postgres驱动程序42.2.5
来自容器的日志:
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 dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Etc/UTC
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
initdb: 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.
syncing data to disk ... ok
Success. You can now start the database server using:
pg_ctl -D /var/lib/postgresql/data -l logfile start
waiting for server to start....2020-09-30 11:17:42.613 UTC [45] LOG: starting PostgreSQL 12.2 (Debian 12.2-2.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
2020-09-30 11:17:42.618 UTC [45] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2020-09-30 11:17:42.642 UTC [46] LOG: database system was shut down at 2020-09-30 11:17:42 UTC
2020-09-30 11:17:42.649 UTC [45] LOG: database system is ready to accept connections
done
server started
/usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
2020-09-30 11:17:42.700 UTC [45] LOG: received fast shutdown request
waiting for server to shut down....2020-09-30 11:17:42.705 UTC [45] LOG: aborting any active transactions
2020-09-30 11:17:42.708 UTC [45] LOG: background worker "logical replication launcher" (PID 52) exited with exit code 1
2020-09-30 11:17:42.708 UTC [47] LOG: shutting down
2020-09-30 11:17:42.737 UTC [45] LOG: database system is shut down
done
server stopped
PostgreSQL init process complete; ready for start up.
2020-09-30 11:17:42.836 UTC [1] LOG: starting PostgreSQL 12.2 (Debian 12.2-2.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
2020-09-30 11:17:42.836 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
2020-09-30 11:17:42.836 UTC [1] LOG: listening on IPv6 address "::", port 5432
2020-09-30 11:17:42.845 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2020-09-30 11:17:42.881 UTC [54] LOG: database system was shut down at 2020-09-30 11:17:42 UTC
2020-09-30 11:17:42.888 UTC [1] LOG: database system is ready to accept connections
2条答案
按热度按时间laawzig21#
为卷创建目录:C:\用户{用户}\docker\postgres_data\数据
连接到Windows上的Postgres:
从CMD连接到Postgres并创建DB(仅在空卷上首次创建容器后):
获取输出:
集装箱ID图像命令创建状态端口名称e626 f4 c7 b 958 postgres:11. 3“docker-entrypoint. s”大约一个小时以前截至大约一个小时0. 0. 0. 0:5432-〉5432/tcp postgres
运行时间:
使用密码=root从Intellij连接:
nkhmeac62#
您似乎在5432端口上运行了postgresql示例。请检查端口5432上运行的是什么:
如果有任何记录,您可以手动终止正在使用此端口(
man kill
)的进程,并重新运行docker container。在我的示例中,有另一个postgresql本地示例正在此端口上运行,因此以下内容对我有帮助:或者(更可取的做法是)为您的docker postgresql指定一个不同的端口Map(例如5433):