Navicat连接MySQL数据库出现如下错误:
2003 - Can't connect to MySQL server on '192.168.232.129' (10060 "Unknown error")
首先ping一下虚拟机的IP地址,确认能够ping通。排除虚拟机网络问题。
如果ping不通,则问题出在本地与虚拟机的网络中。可从虚拟机内网络配置,VMWare虚拟机设置以及虚拟机的宿主机配置问题三方面排除问题。
然后考虑是否是虚拟中系统防火墙导致。CentOS下使用以下代码查看系统防火墙是否打开:
再次尝试连接MySQL数据库,如果提示
1130 - Host '192.168.232.1' is not allowed to connect to this MySQL server
说明网络已经联通。同时说明当前数据库只允许本地登录。于是我们需要开放mysql数据库下root用户的外部登录。
通过命令行登入数据库
然后查看user表中root的host字段
如果root对应host只有127.0.0.1,::1,localhost三个值,说明root用户当前在本地登录,无法远程登录。
授权root用户相应权限:
systemctl status firewalld.service
如果防火墙为打开状态,关闭防火墙:
systemctl stop firewalld.service
关闭防火墙开机自启:
systemctl disable firewalld.service
此时,再次查看防火请状态,应该为关闭状态:
mysql -u root -p
然后输入密码(密码无回显)
select host, user from mysql.user;
如果想允许用户root从任何主机连接到mysql服务器
mysql>grant all privileges on *.* to 'root'@'%' identified by '【root用户密码】' with grant option; mysql>flush privileges;
如果想允许用户root从ip为192.168.1.6的主机连接到mysql服务器
mysql>grant all privileges on *.* to 'root'@'192.168.1.6' identified by '【root用户密码】' with grant option; mysql>flush privileges;
如果想允许用户root从ip为192.168.1.6的主机连接到mysql服务器的dk数据库
mysql>grant all privileges on dk.* to 'root'@'%' identified by '【root用户密码】' with grant option; mysql>flush privileges;
此时就可以正常连接了。
本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work
尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。