出现这种错误是mysql8以后的新版本修改了新的加密方法,加密方法为:
caching_sha2_password
,而旧版本的mysql加密方法为:
mysql_native_password
解决方法有三种方案
方案一
更换最新的SQLyog 工具,新的SQLyog 13.1.5 就启用了新的加密方法,就没有此类的问题出现。
方案二
在新的 mysql 8.0.19 登录,建立一个新账号,采用旧的加密方法,再授权超级管理员,使用此管理员登录也可以使用。代码如下:
·
mysql> create user admin identified with mysql_native_password by 'admin';
Query OK, 0 rows affected (0.35 sec)
mysql> grant all on *.* to admin;
Query OK, 0 rows affected (0.18 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.09 sec)
方案三
直接修改当前root的加密方法为旧的加密方法, 以后也可以通过此方法修改回来。
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '';
Query OK, 0 rows affected (0.18 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)
修改新的加密方法
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '';