如果有人在Docker中运行pgadmin-4,并且无法连接到postgres容器(就像我一样)。
解决方案是首先找到Docker镜像正在运行的IP地址。
步骤1,确保postgres容器正在运行。
步骤2,编写命令- PS C:\docker> docker ps 应该会得到以下或类似结果:
步骤3-为了找到运行postgres的IP地址,使用容器ID的一部分并像下面的命令一样进行分析:
PS C:\docker> docker inspect fc834
注意:这里我只使用了容器ID的一部分,即fc834..
这应该会得到以下或类似结果, 步骤4-
将此IP地址与正确的用户名和密码一起使用如下连接:
执行包含数据的容器,例如:
docker run --name postgresdb -e POSTGRES_USER=username -e POSTGRES_PASSWORD=password -e POSTGRES_DB=mydb -p 5432:5432 --restart always -d postgres
然后在PGAdmin客户端中,在"主机名/地址"中使用:
host.docker.internal
在“主机名/地址”字段中输入服务器的IP地址。默认为localhost。
将“端口”指定为“5432”。
在“数据库维护”字段中输入数据库名称。
将您的用户名输入为postgres,并输入密码(使用之前配置服务器以接受远程连接时使用的相同密码)。
单击“保存”以应用配置。
注意: 您必须先在您的机器上安装PostgreSQL并运行它,或者使用Docker运行它。
我曾经遇到同样的问题。但是在我的情况下,我安装了版本9的pgadmin,同时也安装了版本12。
当我卸载版本9时,端口已经被设置在版本12的配置中,并且没有释放。
所以我的解决方案是在postgresql.conf
文件中更改版本12的端口。或者更简单地,在服务器创建过程中将端口从5432更改为5433。现在你可以再次创建服务器了。
ufw allow 5438
我正在使用Docker容器同时运行PostgreSQL和PGAdmin。
sudo docker ps
sudo docker inspect <postgress_container_id>
输出:
"Networks": {
"work_file_default": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"postgres",
"578a7a1050d1"
],
"NetworkID": "49dbe9d7280b55e36afc4308469c1b55e051d7eea8f1c03f08728e652cf22b5b",
"EndpointID": "c30a642c5a0f2970147c9734cadfbe1e8d7c29fcba8a83a628b7c2b3db114716",
"Gateway": "172.18.0.1",
**"IPAddress": "172.18.0.4",**
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:12:00:04",
"DriverOpts": null
}
将上述命令获取的IP地址 (172.18.0.4
) 替换为 localhost
您需要从计算机中卸载Postgres和pgAdmin。然后安装Postgres,注意您可以选择与Postgres一起安装pgAdmin,因此不必单独下载pgAdmin。允许安装完成,然后重新启动计算机。希望您能够成功创建您的服务器/数据库。
如何在Ubuntu 22.04中解决此问题
我在Postgres中没有设置密码,这就是为什么出现错误“无法连接到服务器127.0.0.0端口5432”的原因。
在Ubuntu终端中输入以下命令:sudo -u postgres psql
运行以下语句以添加新密码:ALTER USER Postgres PASSWORD 'AddNewPasswordHere';
在''中输入您的新密码
示例:
1) sudo -u postgres psql
2) ALTER USER postgres PASSWORD 'mynewpassword'
3) sudo service postgresql restart
4) 然后您可以在pgadmin中创建服务器
ALTER ROLE
- Avik