解决docker mysql无法远程访问

post by rocdk890 / 2022-2-18 14:33 Friday linux技术
问题描述:
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:
本文解决方法参考了这位大神的办法:
https://blog.csdn.net/qq_36059826/article/details/106550332

如果要在docker-compose来启动容器的话可以看看下面这篇:
https://infinite-zh.com/archives/667
夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-786.html

标签: centos mysql linux 网桥 docker 无法远程访问

评论: