参考:
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以上执行的时候会报错误
- mysql> GRANT ALL PRIVILEGES ON *.* TO 'XXX'@'%' IDENTIFIED BY 'ZZZZZ' WITH GRANT OPTION;
- ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
- mysql> exit
这个时候,需要先执行刷新权限:
-
- flush privileges;