在使用第三方應用程序連接 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 mysql.user;
參考:https://blog.csdn.net/maoxinwen1/article/details/88629313