繁体   English   中英

无法从主机连接到Mysql docker容器

[英]Cant connect to Mysql docker container from host

我在Windows上运行docker,然后像这样用MySql启动docker容器

docker run -p 3306:3306 --name test -e MYSQL_ROOT_PASSWORD=secret-pw -d mysql/mysql-server:5.5

然后在我的主机上,启动Mysql工作台并尝试连接,但它不起作用。

docker inspect test揭示172.17.0.2上的IP地址,但是当我ping通此命令时,我没有得到回复

在Linux主机上进行了这项工作,我敢肯定我已经完成了完全相同的步骤

我究竟做错了什么 ?

帮助文档: https : //docs.docker.com/samples/library/mysql/

图片链接: https : //store.docker.com/images/mysql

命令: docker run --name mysql_container_name --expose = 3306 -p 3306 -v / my / own / datadir:/ path / to / data / dir -e MYSQL_ROOT_PASSWORD = root_pwd -d mysql:tag-字符集服务器= utf8mb4-整理服务器= utf8mb4_unicode_ci

mysql_container_name:Docker容器名称

暴露:容器暴露端口

p:主机建立端口

/ path / to / data / dir:容器与主机之间的共享路径

root_pwd:MySQL的根密码

标签:存储库标签

utf8mb4:mysql服务器字符集和排序规则类型

utf8mb4_unicode_ci:mysql服务器字符集和排序规则类型

示例: docker run --expose = 3306 -p 3306 --name mysql -v / my / own / datadir:/ opt / mysql -e MYSQL_ROOT_PASSWORD = 0112358139 -d mysql:latest --character-set-server = utf8mb4-整理服务器= utf8mb4_unicode_ci

请按照以下步骤进行远程连接:

docker exec -it mydb bash->这将连接到mySql容器。

echo“ bind-address = 0.0.0.0” >> /etc/mysql/my.cnf->这将更新my.cnf文件。

服务mysql restart->重新启动mySql服务。

退出-> mySql容器。

docker检查mysql | grep IPAddress-> grep容器的IP地址。

mysql -h 172.17.0.2 -u root –p->远程连接到mySql。

您的主机3306端口应转发到容器,因此请尝试在localhost:3306上进行连接。 当我尝试复制时,得到“不允许主机172.17.0.1连接到该MySQL服务器”,这意味着它至少已通过。

关于后者的更多信息: https : //github.com/fideloper/docker-mysql/issues/10

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM