Windows 下用navicat连接虚拟机MySQL 数据库的过程和问题解决

Windows下用navicat连接虚拟机MySQL数据库的过程和问题解决

1、在linux查看mysql服务器IP地址ifconfig/ip addr

 Windows 下用navicat连接虚拟机MySQL 数据库的过程和问题解决

记住此IP

navicat设置

设置完毕

 Windows 下用navicat连接虚拟机MySQL 数据库的过程和问题解决

 遇到问题:一直连不上,在网上搜索了一下,主要原因为两种:

1、虚拟机防火墙或者3306端口未启用

2、mysql授权问题

问题1:连接时错误提示

使用图形界面管理工具Navicat for MySQL连接Mysql数据库时提示错误:Can't connect to MySQL server (10060)

 Windows 下用navicat连接虚拟机MySQL 数据库的过程和问题解决

 

导致些问题可能有以下几个原因:

1、网络不通;

2、服务未启动;

3、防火墙端口未开放;

解决方法:

启动服务:首先,我用navicat去远程连接虚拟机中的MySQL,连接测试失败然后在虚拟机中查看网络端口信息:#netstat -tunlp

 Windows 下用navicat连接虚拟机MySQL 数据库的过程和问题解决

 

#iptables -vnL:查看防火墙的状态,查看3306端口如果3306如下,是drop状态,或者根本无3306端口,说明3306端口设置问题

Windows 下用navicat连接虚拟机MySQL 数据库的过程和问题解决

 

 解决办法:启动服务service mysql start

开放防火墙端口添加需要监听的端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

或者firewall-cmd --permanent --add-port=3306/tcp

(--permanent永久生效,没有此参数重启后就失效)
 
加载生效开放的端口
 
firewall-cmd --reload

 

开启3306端口监听,开启后如下图

iptables -vnL或者firewall-cmd --list-port

Windows 下用navicat连接虚拟机MySQL 数据库的过程和问题解决

 

 问题2远程连接了一下MySQL,出现了以下错误,查了一下,是因为MySQL没有允许远程登录,所以要授权MySQL远程登录。  

从任何主机上使用root用户,密码:yourpassword(root密码)连接到mysql服务器:# mysql -uroot -p(yourpassword) 

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;

操作完后切记执行以下命令刷新权限 

FLUSH PRIVILEGES;

这时再通过navicat远程连接MySQL,连接测试,如下图,成功。

Windows 下用navicat连接虚拟机MySQL 数据库的过程和问题解决