MySQL远程连接错误提示1130
远程连接MySQL,提示1130,多是用户不具备远程连接的资格,请先查看用户资格。
#用户root登录MySQL
mysql -u root -p
#根据提示输入密码
#进入mysql数据库
use mysql;
#查询用户root的访问权限
select 'host' from user where user = 'root';
#如果查询结果host=localhost,则表示用户root只能本地登录,如果结果root=%,则表示用户可以任意IP地址登录
解决办法如下
#修改root访问权限
update user set host='%' where user = 'root';
#刷新心痛权限,必要操作。
flush privileges;
再次尝试用户root远程登录,应该就可以登录服务器了。
如果还是无法登录,提示报错1251,可能和mysql版本有关,mysql8.0后的版本,数据库密码加密方式更换。
解决办法如下
#修改数据库密码加密方式
alter user 'root'@'localhost' identified with mysql_native_password by '数据库密码';
#刷新心痛权限,必要操作。
flush privileges;
如果还是无法登录,并且提示缺少表文件,那可能是你的远程访问工具版本太低,与数据库版本所不对应造成的,这种情况大多出现在访问mysql5.7版本后的数据库上。
解决办法如下
#找到数据库下的my.ini文件,在文件最后加上下述代码即可,三行代码效果一致,就是开启兼容低版本模式。
show_compatibility_56 = ON
#或
show_compatibility_56 = 1
#或
show_compatibility_56 = true
当然,你也可以直接mysql指令修改,操作如下
#查看兼容是否开启,执行下述指令
show variables like '%show_compatibility_56%';
#开启会显示on,没开启会显示off
#开启版本兼容
set global show_compatibility_56 = on;
若还是无法远程访问,可能是端口3306没有开启,请查看端口号。
要还是不行,那就放弃吧,换一个高版本的远程访问器,或者直接PHPmyadmin。