一、环境
1、虚拟机里面的Ubuntu系统,安装mysql (版本如图)
2、本地win7系统使用Navicat连接
二、错误
本地测试使用navicat连接mysql时,连接失败,提示“2003-Can't connect to MySql server on 'localhost'(10061)”错误,如图:
三、解决异常
1、检查mysql是否授权远程用户登录,先连接mysql,然后执行以下命令,检查授权登录信息。
root@ubuntu:~# mysql -uroot -p
Enter password:
mysql> use mysql;
mysql> select user,host from user;
如果没有host值为“%”的信息,请执行以下命令添加,即对所有root用户授权:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root用户密码' WITH GRANT OPTION;
注意:如果授权指定IP,可以将%换成指定IP即可。
2、重新授权,执行以下命令:
mysql> flush privileges;
Query OK, 0 rows affected (0.21 sec)
3、重启mysql服务
root@ubuntu:~# service mysql restart
4、查看目前有哪些端口被打开,执行:
root@ubuntu:~# netstat -talnp
从结果看到,目前3306端口只允许本地连接,所以我们需要修改mysql的配置文件。
5、把127.0.0.1:3306改为0.0.0.0:3306,让所有用户可以远程访问mysql
打开 /etc/mysql/mysql.conf.d/mysqld.cnf 找到bind-address= 127.0.0.1
把它改成 bind-address= 0.0.0.0
(如果上面目录没找到,那么你的mysql版本的配置文件目录可能是:/etc/mysql/mysql.cnf
)
保存文件之后,执行命令:service mysql restart,重启mysql生效。
四、测试连接,连接成功。