问题:Navicat ,SQLyog连接MySQL8 异常2059-Authentication plugin 'caching_sha2_password' cannot be loaded解决方案
这个报错是因为mysql新版本修改了密码的加密方式,在老的gui上登陆会报错。 在网上看到很多解决方案,都是直接上来就进入mysql控制台,然后修改加密方式,但是在我的实际过程中失效,修改了之后还是一样连接报错
正确如下:
- 第一步:进入my.cnf加一个配置
// 据说新版本的mysql不支持在mysql控制台直接修改此配置,所以需要在my.cnf中修改
default_authentication_plugin=mysql_native_password
我的配置:
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
default_authentication_plugin=mysql_native_password
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
- 第二步
mysql -u root -p
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; //设置加密方式
FLUSH PRIVILEGES;
注意:上面修改的是mysql本地登陆的加密方式,如果需要远程登陆,需要把localhost改成%,如下
mysql -u root -p
use mysql;
update user set host = '%' where user = 'root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;