Navicat远程连接云服务器数据库: 1130 Host‘xxxx is not allowed to connect to this MySQL server
问题描述
使用宝塔Linux时创建了一个数据库,我想用Navicat进行远程访问,但是创建好Navicat连接后测试连接却报出了:1130 Host‘xxxx is not allowed to connect to this MySQL server
注意:在此之前服务器的3306端口已经开放,在宝塔linux中也同样。
原因分析
当前的用户没有访问MySQL数据库的权限,我的root用户就没有开启访问MySQL数据库的权限。
解决方法:
使用宝塔linux中的phpMyAdmin进行数据库相关配置,或者使用远程连接修改数据库配置。
第一步:打开mysql
数据库:
#打开mysql数据库
use mysql;
第二步:修改user
表中用户访问权限配置:
#将host设置为%表示任何ip都能连接mysql,也可以将host指定为某个ip
update user set host='%' where user='root' and host='localhost';
#刷新权限表,使配置生效
flush privileges;
第三步:测试远程连接:
在Navicat中测试连接,发现连接成功:
补充
如果想要配置只有本机内才能对数据库进行访问,可执行以下命令:
#打开mysql数据库
use mysql;
#将host设置为localhost表示只能本地连接mysql
update user set host='localhost' where user='root';
#刷新权限表,使配置生效
flush privileges;
也可以专门创建一个数据库user用于远程连接,只需要执行以下命令进行配置(前提是已经创建好了一个用户)
grant all on *.* to '创建的用户名'@'%' identified by '密码';
flush privileges;
总结
出现了无法访问的问题的根本原因就是出在服务器中的MySQL数据库没有设置远程ip访问数据库的权限,修改mysql.user表中的相关配置即可解决问题。