通过Navicat远程连接MySQL

时间:2021-07-19 18:04:09

参考:

http://blog.csdn.net/apple9005/article/details/53033148

问题一:在主机下通过Navicat连接服务器MySql的时候,提示“2003 Can't connect to mysql server on 'xxx.xxx.xxx.xxx'(10038)”

原因:服务器3306远程端口没有开放

解决:

1.首先查看端口是否打开,命令:netstat  -an|grep 3306

会显示127.0.0.1:3306,表示的是本地

2.打开mysql配置文件,命令:sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

将bind-address = 127.0.0.1注销

3.重启数据库

再次执行netstat  -an|grep 3306,发现已经变化。

问题二:在解决问题一后,用主机Natcivat再次连接服务器Mysql,出现另一错误提示:1130-Host‘XXX.XXX.XXX.XXX’ is not allowed to connect to this MySQL server

原因:远程服务器无权限登录MySQL

解决:

1.Ubuntu下登录MySQL:mysql -uroot -p

2.执行下命令

GRANT ALL PRIVILEGES ON *.* TO '你的用户名'@'%' IDENTIFIED BY '你的数据库密码' WITH GRANT OPTION;

3.在执行下
flush privileges;

这个命令是刷新一下权限,不用重启

以上只针对5.7以下版本。

5.7以上执行的时候会报错误

  1. mysql> GRANT ALL PRIVILEGES ON *.* TO 'XXX'@'%' IDENTIFIED BY 'ZZZZZ' WITH GRANT OPTION;
  2. ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
  3. mysql> exit

这个时候,需要先执行刷新权限:

    1. flush privileges;