如何修改 MySQL 的密码认证方式

在使用第三方应用程序连接 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

posted @ 2021-07-27 17:02  不是豆豆  阅读(3072)  评论(0编辑  收藏  举报
友情链接:迷途