- 报错内容
- 验证插件
1.mysql_native_password-->Mysql 8.0之前的默认身份验证插件 切换命令:ALTER USER '用户名'@'%' IDENTIFIED WITH mysql_native_password BY '密码'; 2.caching_sha2_password-->Mysql 8.0之后的默认身份验证插件 切换命令:ALTER USER '用户名'@'%' IDENTIFIED WITH caching_sha2_password BY '密码'; 注意:root用户默认仅支持本地连接-->ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
- 原因分析(Linux安装MySql)
Mysql 8.0安装时初始化命令使用了非安全模式(mysqld --initialize-insecure),导致root用户身份验证插件为mysql_native_password, 而Mysql 8.0服务端默认的身份验证插件caching_sha2_password,项目启动root用户连接Mysql服务时身份验证不通过导致无法连接报错。
- 解决方案
方案一:切换root用户的认身份验证插件为mysql_native_password ALTER USER '用户名'@'%' IDENTIFIED WITH mysql_native_password BY '密码'; 方案二:创建新用户时指定身份验证插件为mysql_native_password-->仅该新用户生效 create user '用户名'@'%' IDENTIFIED WITH mysql_native_password BY '密码'; 方案三:修改Mysql 8.0配置文件my.ini-->重启Mysql服务后对所有新建用户生效 [mysqld] default_authentication_plugin=mysql_native_password ----------------------------------------------------- create user '用户名'@'%' IDENTIFIED BY '密码';
Client does not support authentication protocol requested by server; consider upgrading MySQL client
于 2022-10-27 14:53:58 首次发布