2 回答
TA贡献1836条经验 获得超3个赞
当需要建立主机和容器化 Docker 数据库之间的连接时,您需要使用主机的环回 IP 地址 (127.0.0.1),在您的情况下,这将如下所示:
...
'host' => '127.0.0.1',
'port' => HOST_MACHINE_MYSQL_PORT
'username' => DOCKER_MYSQL_USERNAME,
'password' => DOCKER_MYSQL_PASSWORD,
'database' => DOCKER_MYSQL_DATABASE_NAME
...
HOST_MACHINE_MYSQL_PORT是主机上的端口,DB 服务从 Docker 容器指向该端口。
当您连接到在 Docker 容器内运行的 MySQL 服务器公开的端口时,应按预期建立连接。
localhost关于vs 的快速说明127.0.0.1:
localhost 是给机器本身的标准主机名,通常解析并映射到 127.0.0.1 地址。
127.0.0.1 地址是机器本身的地址,用于与最终用户使用的同一台机器或计算机建立 IP 连接。
TA贡献1815条经验 获得超10个赞
我用环境变量更改了 app.php,更改了数据库的用户名和密码。
我删除了 ./data/mysql 的数据重建容器但仍然是同样的错误我猜它与主机名有关
也尝试使用变量 PMA_HOST 但仍然没有成功。(本地主机也不起作用)
'host' => env('PMA_HOST'),
如果我登录到 phpmyadmin,我可以毫无问题地创建我的表。
如果我登录到容器,我可以登录并进行查询
我看到套接字没有通过 grepping php 设置填充,
pdo_mysql.default_socket => /var/run/mysqld/mysqld.sock => /var/run/mysqld/mysqld.sock
现在这已经填满了,但仍然没有继续 php 连接到 mysql(在蛋糕上,在我的数据库测试脚本中我有连接)。
- 2 回答
- 0 关注
- 226 浏览
添加回答
举报