停止MySQL 8容器,可以使用以下命令:
docker stop mysql8
启动MySQL 8容器时,添加--bind-address选项将MySQL服务器绑定到0.0.0.0地址,可以使用以下命令:
docker run -d --name=mysql8 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=yourpassword --bind-address=0.0.0.0 mysql:8
其中,yourpassword是您自己设置的MySQL root用户的密码。
3. 确认MySQL 8容器已经成功启动,可以使用以下命令:
docker ps
确认MySQL 8容器中的MySQL服务器已经绑定到0.0.0.0地址,可以使用以下命令:
docker exec -it mysql8 bash -c "grep bind-address /etc/mysql/my.cnf"
如果输出结果为bind-address = 0.0.0.0,则表示MySQL服务器已经成功绑定到0.0.0.0地址。
5. 确认MySQL 8容器中的MySQL服务器已经开始监听所有IP地址的3306端口,可以使用以下命令:
docker exec -it mysql8 bash -c "netstat -an
grep 3306"
如果输出结果中有一行为0.0.0.0:3306,则表示MySQL服务器已经开始监听所有IP地址的3306端口。
6. 现在,其他IP地址就可以使用MySQL客户端连接到MySQL 8容器中的MySQL服务器了。您可以使用以下命令测试:
mysql -h
其中,
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql8
如果提示输入密码,则输入之前设置的MySQL root用户的密码即可。
注意事项:
在将MySQL服务器绑定到0.0.0.0地址后,所有IP地址都可以访问MySQL服务器,因此请确保已经正确地设置了MySQL root用户的密码,并限制其他IP地址的访问权限。
在连接到MySQL 8容器中的MySQL服务器时,请确保您已经打开了3306端口。如果您使用的是防火墙,请添加规则允许外部IP地址访问3306端口。