无法通过PHP连接到Docker中的PostgreSQL
我不能用PHP代码连接到PostgreSQL。 我的PostgreSQL是docker集装箱。 我得到一个IP:
docker inspect toshi_db_1
我如何连接:
$dbconn = pg_connect("host=172.17.0.2 port=5432 dbname=toshi_development")or die("Could not connect");
错误:警告:pg_connect():无法连接到PostgreSQL服务器:无法连接到服务器:连接超时(0x0000274C / 10060)服务器是否运行在主机“172.17.0.2”上并接受端口5432上的TCP / IP连接?
我以为在使用listen_addressconfiguration参数的PostgreSQL.conf中可能会出现问题,但它允许所有的连接,所以我不知道问题出在哪里。
更新:我自己修复它,只是试图暴露docker-compose文件中的错误端口。
我今天也遇到同样的情况。 解决scheme是用容器的名称replacelocalhost端口。 喜欢:
$dbconn = pg_connect("host=toshi_db_1 port=5432 dbname=toshi_development")or die("Could not connect");
不知道是否应该与IP相同。 但IP不会改变吗?
所以,对于看到这个post的其他人:请记住,127.0.0.1总是指向当前的容器。 所以你必须用你的容器名称replace“localhost”部分。