描述
我正在尝试使用 PhpMyAdmin 运行一个容器连接到 MySQL Community Server我安装在我的 Mac 操作系统上。
如下所示,我可以通过终端连接。
使用以下命令:
mysql --host=localhost --port=3306 --user=root --password="o_oGLZDI<1-t"
问题
我无法使用来自 docker 的 PhpMyAdmin 正确连接到 MySQL。我尝试了以下命令行:
docker run --name myadmin -d -e PMA_HOST=127.0.0.1 -e PMA_PORT=3306 -p 8080:80 phpmyadmin/phpmyadmin
docker run --name myadmin -d -e PMA_HOST=localhost -e PMA_PORT=3306 -p 8080:80 phpmyadmin/phpmyadmin
当我尝试登录时,它们会产生这些错误:
127.0.0.1版本
#2002 - Connection refused — The server is not responding (or the local server's socket is not correctly configured).
本地主机版本
#2002 - No such file or directory — The server is not responding (or the local server's socket is not correctly configured).
问题
以正确配置运行 docker 以连接到我的 MySQL Server Mac OS 所需的正确命令行是什么?
最佳答案
你的命令:
docker run --name myadmin -d -e PMA_HOST=127.0.0.1 -e PMA_PORT=3306 -p 8080:80 phpmyadmin/phpmyadmin
这将指向 localhost
但指向 phpmyadmin 容器内的 localhost
而不是您机器的本地主机(运行 mysql 的地方)。
您可以在主机网络上运行容器,这将禁用容器网络。这意味着您将能够使用本地主机访问您的 mysql 容器:
docker run --name myadmin --network=host -d -e PMA_HOST=127.0.0.1 -e PMA_PORT=3306 phpmyadmin/phpmyadmin
您可以在端口 80(而非 8080)上访问您的 phpmyadmin,因为当您指定 --network=host
时容器网络未被使用。 (可能是您需要调整防火墙以允许 docker0)
另一种选择(更好的选择)是使用 docker.for.mac.localhost
作为 PMA_HOST
,尤其是对于 MacOS(从 Docker 版本 17.06 开始)。这应该解析为您的 mac 内部地址(但我现在无法对其进行测试)。
docker run --name myadmin -d -e PMA_HOST=docker.for.mac.localhost -e PMA_PORT=3306 -p 8080:80 phpmyadmin/phpmyadmin
关于mysql - 无法将 Docker PhpMyAdmin 连接到 MySQL Server Mac OS,错误 #2002,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48675266/