文章是为了记录本身在学习过程当中遇到的各类问题,参考了其余网友的博客或者百科,若有侵权或者不妥之处,随时联系我删除或修改。mysql
我用我本地的Navicat链接虚拟机时候提示如上,ping了一下虚拟机地址,发现是能够ping通的,可是数据库是链接不上的。web
MySQL是否启动。登上虚拟机检查是否能进入MySQL数据库,能进入证实没问题。sql
查看MySQL对应端口在防火墙里是否开启。数据库
进入MySQL查看MySQL对应端口,默认是3306。tcp
show global variables like 'port';
查看3306端口在Linux防火墙端口是否开放svg
firewall-cmd --zone=public --query-port=3306/tcp
若是端口是关闭状态,打开它就能够了。学习
firewall-cmd --zone=public --add-port=3306/tcp --permanent // 永久
此时我再用Navicat链接数据结果仍是没有成功,不过报错信息发生变化了,说明仍是有用的。this
关于firewall的命令你们能够参考简书上面的一篇介绍文章 https://www.jianshu.com/p/411274f96492spa
首先说这个错误是由于MySQL自己是不容许远程登陆的,须要需改mysql实例下的user表,把host字段的localhost改为%就能够了。code
use mysql; // 切换实例 update user set host = '%' where user = 'root'; //修改字段 FLUSH PRIVILEGES; //重要,刷新权限表,不刷新可能不起做用
而后用Navicat链接就能够了,这是我链接过程当中发生的问题,我的记录用。