docker-mysql-server启动后外部无法访问

1.启动mysql-server:5.6镜像.

docker run --name my-container-name -e MYSQL_ROOT_PASSWORD=root123 -d -p 3306:3306 mysql/mysql-server:5.6

2.在宿机上使用mysql客户端或使用Navicat连接-出现下面信息 PS:如 mysql -h 公网IP -u user -p pass
ERROR 1130 (HY000): Host ‘xxx. xxx. xxx’ is not allowed to connect to this MySQL server

处理此问题
下面命令: 查看容器ID, 进入指定mysql服务器的容器中, 在容器使用mysql客户端进入mysql.将root的host更改为%(可任意机器访问) 刷新权限. 退出mysql 即出容器.

docker ps
docker exec -it <容器ID> bash
mysql -u root -proot123
> SELECT host, user FROM mysql.user;
> SELECT host, user FROM mysql.user;
> flush privileges;
> exit;
exit;

再测试连接, Success!

相关资料

docker-library/mysql-issue
docker-mysql-server