docker创建mysql并设置了端口映射,进入容器登陆mysql正常,但是在容器外,无论是本机的mysql客户端还是其他机器的客户端都无法连接
创建语句:
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
容器中可以正常登陆
排查过程:
通过netstat -natp |grep 3306查看该连接为tcp6
在另一台机器上telnet 3306端口不通,应该是端口没有转发
解决方法:
配置端口转发
vi /etc/sysctl.conf
net.ipv4.ip_forward=1
保存退出后执行
sysctl -p
再次telnet3306端口已通
远程登陆正常
bin/mysql -h 192.168.119.11 -uroot -p123456