在使用第三方应用程序连接 MySQL 时遇到错误:plugin caching_sha2_password could not be loaded
经查询得知应该时不支持或者没有对应插件导致,在不能修改第三方程序的情况下,就需要修改 MySQL 的认证方式了。
目前有以下三种处理方式:
1、如果使用 Docker,可以在初始化容器之前添加命令参数:--default-authentication-plugin=mysql_native_password
示例:
docker run -d -p 3306:3306 -v /home/my.cnf:/etc/mysql/my.cnf -v /home/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql --default-authentication-plugin=mysql_native_password
这样默认创建的用户就都使用 mysql_native_password 这种方式了
参考:https://hub.docker.com/_/mysql
2、在 my.cnf 中修改配置
示例:
[mysqld] default_authentication_plugin = mysql_native_password
在配置生效后的新建用户,将使用配置指定的认证方式
3、现有用户通过 sql 语句修改
-- 使用新的认证方式修改密码 ALTER USER ‘root‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘123456‘; ALTER USER ‘root‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘123456‘; -- 刷新生效 FLUSH PRIVILEGES; -- 查看结果 SELECT Host, User, plugin from user;
参考:https://blog.csdn.net/maoxinwen1/article/details/88629313