Min*_*dro 1 php postgresql docker
我无法使用 php 代码连接到 PostgreSQL。我的 Postgresql 是 docker 容器。我通过以下方式获得 IP:
docker inspect toshi_db_1
Run Code Online (Sandbox Code Playgroud)
我如何尝试连接:
$dbconn = pg_connect("host=172.17.0.2 port=5432 dbname=toshi_development")or die("Could not connect");
Run Code Online (Sandbox Code Playgroud)
错误:警告:pg_connect():无法连接到 PostgreSQL 服务器:无法连接到服务器:连接超时 (0x0000274C/10060) 服务器是否在主机“172.17.0.2”上运行并接受端口 5432 上的 TCP/IP 连接?
我认为PostgreSQL.conf中的listen_address配置参数可能有问题,但它允许所有连接,所以我不知道问题出在哪里。
更新:我自己修复了它,只是试图在 docker-compose 文件中公开错误的端口。
我今天在同样的情况下跑步。解决方案是用容器的名称替换本地主机端口。喜欢:
$dbconn = pg_connect("host=toshi_db_1 port=5432 dbname=toshi_development")or die("Could not connect");
Run Code Online (Sandbox Code Playgroud)
不确定它是否应该与 IP 相同。但是IP不会改变吗?
所以,对于看到这篇文章的其他人:记住 127.0.0.1 总是指向当前容器。所以你必须用你的容器名称替换“localhost”部分。
| 归档时间: |
|
| 查看次数: |
2659 次 |
| 最近记录: |