解决docker mysql无法远程访问
问题描述:
docker run -itd --restart=always --name mysql5.7 \ -v /etc/localtime:/etc/localtime:ro \ -v /data/mysql:/var/lib/mysql \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=password \ rocdk890/mysql:5.7
此时在本地使用mysql workbench无法远程连接该容器中的mysql,删除掉这个mysql容器,我们来解决docker mysql为什么无法远程访问问题.不要给我说没有给远程权限那些,防火墙放过端口,远程权限给指定用户等等一些能解决问题的办法,我都已经试过,这次特殊的情况用下面的方法才解决掉,这次问题我整整折腾了1个多小时才解决.
系统:centos7.x(64位)
1.安装 bridge-utils
yum -y install bridge-utils
2.停止docker
systemctl stop docker
3.添加网桥
brctl addbr br0
4.添加 ip 段
ip addr add 172.16.0.1/24 dev br0
5.启用网桥 br0
ip link set dev br0 up
6.修改docker默认网桥
vi /etc/docker/daemon.json
"bridge":"br0"
7.启动docker
systemctl start docker
8.查看网桥
brctl show
在没有挂载容器前,依旧是 8000.000000000000
9.运行docker mysql容器
docker run -itd --restart=always --name mysql5.7 \
-v /etc/localtime:/etc/localtime:ro \
-v /data/mysql:/var/lib/mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=password \
rocdk890/mysql:5.7
10.再次查看网桥就会发现,已经变成8000.xxxxxxxxxxxx(后面的数字是随机的),现在就可以知道问题已解决.再给数据库指定用户远程权限,进行远程访问.
ps:
ps:
本文解决方法参考了这位大神的办法:
https://blog.csdn.net/qq_36059826/article/details/106550332
https://blog.csdn.net/qq_36059826/article/details/106550332
如果要在docker-compose来启动容器的话可以看看下面这篇:
https://infinite-zh.com/archives/667
评论: