出现这种错误是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)
扫描二维码关注公众号,回复:
11473981 查看本文章
方案三
直接修改当前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 '';