问题背景
在Linux上安装上Mysql后,执行以下代码开启远程登录:
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "你的密码" WITH GRANT OPTION;
系统提示:
解决方法
这是由于安装的Mysql版本过高的问题引起的,这种方法在Mysql8.0以后就已经不适用了,故我们需要执行以下的sql语句:
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
GRANT ALL ON *.* TO 'root'@'%';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';

如果第一句sql报错,可以试一下先
drop user 'root'@'%';
执行完毕后再刷新权限:
flush privileges;

最后使用工具连接虚拟机的Mysql,连接成功。

在Linux上安装Mysql8.0后,尝试用旧方法开启远程登录失败。原因是新版本不适用该方法。正确解决方案是:创建用户'root'@'%',赋予所有权限,使用mysql_native_password验证,并刷新权限。如果遇到问题,可先删除旧用户再操作。最终成功实现远程连接。
1751

被折叠的 条评论
为什么被折叠?



