查询出docker容器中mysql的container_id
docker ps
登录mysql容器,其中mysql就是上面查出来的container_id
docker exec -it mysql bash
mysql -uroot -p
授权
GRANT ALL ON *.* TO 'root'@'%';
刷新权限
flush privileges;
此时,还不能远程访问,因为Navicat只支持旧版本的加密,需要更改mysql的加密规则
更改加密规则 password就是启动容器的时候的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
更新root用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
刷新权限
flush privileges;
exit;//退出mysql
开启允许对外访问的网络端口:
/sbin/iptables -I INPUT -p tcp --dport 8000 -j ACCEPT #开启8000端口
/etc/rc.d/init.d/iptables save #保存配置
/etc/rc.d/init.d/iptables restart #重启服务