navicat连接虚拟机里面docker容器中的mysql
进入容器:
docker exec -it mysql容器id bash
登录mysql:
mysql -uroot -p
授权:
GRANT ALL ON *.* TO 'root'@'%';
刷新权限:
flush privileges;
此时,还不能远程访问,因为Navicat只支持旧版本的加密,需要更改mysql的加密规则
更改加密规则 password就是启动容器的时候的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER;
更新root用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
刷新权限
-
flush privileges;
-
exit;//退出mysql
-
exit;//退出mysql容器
开启允许对外访问的网络端口:
-
或 iptables -/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT (好像只执行这一个就可以了)
I
INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -
service iptables save
-
service iptables restart