从主机连接到 Docker 容器中的 MySQL
问题描述:
何时尝试从主机连接到在 Docker 容器中运行的 MySQL 数据库时,遇到错误消息:“Can't通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器。
Dockerfile:
以下Dockerfile用于创建MySQL容器:
FROM ubuntu:14.04.3 RUN apt-get update && apt-get install -y mysql-server RUN grep -v bind-address /etc/mysql/my.cnf > temp.txt && mv temp.txt /etc/mysql/my.cnf EXPOSE 3306 CMD /etc/init.d/mysql start && tail -F /var/log/mysql.log
失败尝试:
尽管在容器内成功启动了 MySQL 实例,但使用 mysql -P 12345 -uroot 从主机连接到它会导致套接字错误。
解决方案:
要从主机连接到在 Docker 容器中运行的 MySQL 数据库,请执行以下操作必要步骤:
主机连接命令:
mysql -h localhost -P 3306 --protocol=tcp -u root
更改端口:
如果不同端口用于暴露Docker容器中的MySQL实例(例如12345),应该指定也在连接命令中:
mysql -h localhost -P 12345 --protocol=tcp -u root
以上是如何从主机连接到 Docker 化的 MySQL 实例?的详细内容。更多信息请关注PHP中文网其他相关文章!