navicat连接虚拟机中的数据库

本人最近在学习使用lamp环境,在配置环境后,想在宿主机中通过Navicat来管理虚拟机中的数据库,但是在连接过程中出现了一点小问题。


在navicat中填写好相应的配置信息:

navicat连接虚拟机中的数据库

主机ip填写虚拟机的ip地址即可,将虚拟机设置为NAT模式。


但是在点击测试连接时会连接很久,最后提示10060错误。如下图:

navicat连接虚拟机中的数据库



这里的原因可能有很多:


1.此处我用的是root用户,可能你在配置数据库时,将root账户设置为不可远程登录,因此需要检查mysql或者是mairadb的配置项,将其设置为支持远程登陆。

操作起来也不难:

即打开数据库,将mysql数据库中的user表中 user = 'root的记录的host设置为‘%’ ,这样就表示可使root账户远程访问。

mysql -u root –p
mysql>use mysql;
mysql>update user set host = '%' where user =' limit 1;

2.在设置好root账户之后,如果还不能连接,就可能是防火墙的锅了。

在centos7 中开放mysql的端口,即3306,在终端下执行以下命令:

firewall-cmd --permanent --zone=public --add-service=mysql

即可开放3306端口,对于mariadb数据库是一样的,mariadb数据库的默认端口与mysql相同。

打开之后要reload之后才生效。再执行一行命令:

firewall-cmd --reload


现在就可以成功通过宿主机的navicat访问虚拟机中的数据库了。

navicat连接虚拟机中的数据库