[英]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.