背景
在centos7中用docker安装好了5.7的mysql,但是在宿主机中用SQLyng连接不上。安装的时候也给root账户所有的权限了。
原因
docker容器实例默认与宿主机网络隔离,需要开启网络路由
解决
# 查看net.ipv4.ip_forward是否为1
sysctl net.ipv4.ip_forward
# 如果不为1,在配置文件中修改
vim /etc/sysctl.conf
# 添加以下内容
net.ipv4.ip_forward=1
# 执行以下内容使配置生效
sysctl -p
# 再次查看sysctl net.ipv4.ip_forward
sysctl net.ipv4.ip_forward
执行sysctl - p
的时候可能出现错误:
sysctl: cannot stat /proc/sys/“net/ipv4/ip_forward: 没有那个文件或目录
可以用以下方法解决:
# 加载驱动
modprobe ip_tables
# 如果上面那种不管用,用下面这个
modprobe br_netfilter
# 执行完后再次尝试让配置生效
sysctl -p