问题现象及描述:navicat连接数据库提示:2003-Can't connect to MySql server on'192.168.245.131',(unkown error)
问题可能出现的原因:
1、数据库连接ip、端口、用户名、密码信息输入错误(数据库连接四要素)
2、该用户不可远程连接
3、linux防火墙未开放
解决方式
数据库连接ip问题:
对于该问题,我们首先先在windows本地ping ip地址,查看是否能ping通,如果能ping通,则向下看,如果不能ping通,则去linux查看ip地址。下图表示可ping通状态
如果不能ping通,则去linux服务器查看ip地址,因虚拟机centos可能有两种网卡,对应ip不同
数据库连接端口问题
在mysql启动的前提下,在linux上用命令查询Mysql对应端口。netstat -tlnp|grep mysql,如果与这里显示一致,则继续向下
数据库连接用户名及密码问题
确认用户名及密码的正确性
该用户不可远程连接
如果以上都没有问题,则去库里查询当前登录用户,是否可远程连接:执行sql查询
SELECT User,Host FROM user;
host为localhost的用户和root用户都是无法远程连接的,如果非root用户需要远程连接可以将host做修改为本地host 或 %,%表示可以从任何主机连接MYSQL服务器,修改命令为
update user set host='%' where User = 'username'; flush privileges;#刷新数据库缓存
防火墙问题
如果上述都没问题,大概率为防火墙问题,linux防火墙有两种,在centos7及以上默认使用firewalld,我们就以firewalld为例,执行命令如下:
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload