gpt4 book ai didi

php - Docker PHP MySQL 连接被拒绝

转载 作者:行者123 更新时间:2023-11-29 01:50:06 25 4
gpt4 key购买 nike

我正在尝试使用多个容器配置运行一个站点 - 一个用于 apache,第二个用于 mysql,第三个用于 myadmin。一切顺利,设置运行顺利,但当我尝试运行 PHP 应用程序时,我得到 mysqli::__construct(): (HY000/2002): Connection refused in system/libraries/drivers/Database/Mysqli.php [54]错误。

连接设置似乎有问题,但我通过在单独容器上运行的 PHP MyAdmin 检查了该站点,并从那里复制了数据库主机 IP 以确保安全。我如何/应该如何从 PHP 容器连接到 MySQL 数据库?

这是我的 docker-compose.yml文件:

version: '3'
services:
web:
build:
context: ./etc/php
args:
- APP_HOST=${APP_HOST}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_PORT=${MYSQL_PORT}
- MYSQL_DATABASE=${MYSQL_DATABASE}
ports:
- ${APP_PORT}:80
- ${APP_PORT_SSL}:443
volumes:
- ./var/bin/:/tmp/bin/
- ./app/:/var/www/html/
- ./log/apache2/:/var/log/apache2/
- ./etc/php/conf/:/usr/local/etc/php/conf.d/
environment:
- VIRTUAL_HOST=${VIRTUAL_HOST}
db:
build:
context: ./etc/mysql
args:
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- DUMP_FILE=${DUMP_FILE}
volumes:
- ./etc/mysql/conf:/etc/mysql/conf/conf.d
- ./data:/var/lib/mysql
- ./log/:/var/log/
ports:
- "${MYSQL_PORT}:3306"
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
MYSQL_ROOT_PASSWORD: root
ports:
- ${MYADMIN_PORT}:80
environment:
- VIRTUAL_HOST=phpmyadmin.localhost

还有 .env有变量:

VIRTUAL_HOST=foo.local

APP_PORT=80
APP_PORT_SSL=443
MYADMIN_PORT=8081

APP_HOST=foo.local
ADMIN_APP_HOST=admin-foo.local

MYSQL_DATABASE=foo_local
MYSQL_USER=root
MYSQL_HOST=172.26.0.2
MYSQL_PASSWORD=root
MYSQL_ROOT_PASSWORD=root
MYSQL_PORT=3306

哦,这是我尝试运行的代码:

 $this->link = $socket ? new mysqli(null, $user, $pass, $database, $port, $socket) :
new mysqli($host, $user, $pass, $database, $port);

echo $host.'<br>'.$user.'<br>'.$pass.'<br>'.$database.'<br>'.$port.'<br>'.$socket; 的输出如下:

172.26.0.2
root
root
hq_local
3306

最佳答案

使用 docker inspect [container name] 检查您的容器 IP,但是将 IP 写入文件不是很好。用您的数据库容器的名称替换 IP。

关于php - Docker PHP MySQL 连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47993571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com