我正在尝试将PostgreSQL
和PGADMIN4
连接在一起工作。pgadmin4
工作正常,但当我尝试创建新服务器时,有两个问题:
postgres
容器位于不是5432的其他端口,则不会识别该端口。显示此错误:无法连接到服务器:连接拒绝是在主机“172.17.0.5”上运行并接受端口5431上的TCP/IP连接的服务器?
Postgres
容器位于端口5432处,则错误为致命:用户“example”
的密码身份验证失败。我执行以下命令以获取postgres
容器:docker run-p 5431:5432--name postgres2-e postgres_password=ad1234-d postgres
。
在stackoverflow中的其他响应之后,我尝试添加这个命令-c“listen_addresses='*'”
,并且我也在配置文件中输入,但没有一个对我有用。
希望你能帮助我,谢谢。
好吧,我解决了,这是我的一个很大的失败。我使用的是172.17.0.5
(IP容器地址),而连接时需要使用的是172.17.01
(网关)。谢谢你抽出时间。
我这样再现了你情景:
# docker run -p 5431:5432 --name postgres2 -e POSTGRES_PASSWORD=ad1234 -d postgres
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d4030c577a24 postgres "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:5431->5432/tcp postgres2
# sudo -u postgres psql -h localhost -p 5431
could not change directory to "/root": Permission denied
Password:
psql (10.5, server 11.2 (Debian 11.2-1.pgdg90+1))
WARNING: psql major version 10, server major version 11.
Some psql features might not work.
Type "help" for help.
postgres=# CREATE DATABASE mytestdb;
CREATE DATABASE
postgres=# \q
现在正在为pgadmin启动docker并能够连接到PostgreSQL:
docker run -p 80:80 --link postgres2 -e "PGADMIN_DEFAULT_EMAIL=user@domain.com" -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" -d dpage/pgadmin4
使用上面的命令,您可以将postgres2 docker链接到pgadmin docker,然后在pgadmin4上创建连接时,您应该使用:
这样,我就从pgadmin4连接到了Postgres
据我所知,docker PostgreSQL默认只带有localhost连接,如果您想添加远程连接,则应该在Postgreql.conf中添加“listen_addresses='*'”
问题内容: 我在使用Hibernate和PostgreSQL进行生产以及使用HSQLDB进行测试时遇到问题。 我正在使用自上而下的方法让Hibernate创建数据库架构。 我也在使用注释;hibernate.cfg.xml的映射部分仅包含诸如 Hibernate默认值之类的行,以将PostgreSQL上的String变量转换为character changes(255),这在某些情况下对我来说是不
问题内容: 我一直在关注几种不同的教程以及官方教程,但是每当我尝试在容器中安装PostgreSQL时,我都会收到以下消息 我在SO和整个互联网上浏览了几个问题,但是没有运气。 问题答案: 问题是您的应用程序/项目正在尝试访问HOST机器(不是docker容器)中的postgres套接字文件。 要解决这个问题,要么必须在使用该标志为postgres容器设置端口时明确要求进行tcp / ip连接,要么
我一直在关注几个不同的教程以及官方教程,但是每当我试图在容器中安装PostgreSQL时,我都会收到以下消息 我在SO和整个互联网上看了几个问题,但没有运气。
我在docker容器中的服务器上有Postgresql。如何从外部连接到它,即从本地计算机连接到它?我应该应用什么设置来允许它?
连接到数据库 我在那里没有看到任何桌子,除了原木 我查看了日志,changelog已经在那里工作,并且已经创建了表。
问题内容: 我已经安装了带有mysql的docker容器,该容器公开了3306。我已经指定了数据库用户,数据库密码并创建了一个测试数据库,并将特权授予了新用户。 在另一个容器中,我想访问此数据库。 因此,我用一个简单的PHP脚本设置了新容器,该脚本在此db中创建了新表。 我知道mysql容器的ip是172.17.0.2这样: 比起使用mysqli,我创建了新表,并且一切正常。 但是我认为使用他的I