Mr.Yuan Mr.Yuan

苟正其身矣,于从政乎何有?不能正其身,如正人何?

目录
mysql this authentication plugin is not supported
/  

mysql this authentication plugin is not supported

mysql: this authentication plugin is not supported

错误原因

mysql 在8.0之后将用户使用的plugin更新成 caching_sha2_password。而在之前用的是 mysql_native_password

查看plugin

use mysql;
select user,host,plugin from user;

可以看到

+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| root             | %         | mysql_native_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| abc              | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
5 rows in set (0.00 sec)

上面的 root, abc用户是我修改后的 plugin, 修改前的是 caching_sha2_password

解决办法

  • 降级 mysql
  • 修改 plugin 为 mysql_native_password

修改 plugin

使用命令

ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘密码’;

修改密码的同时,并指定编码为 mysql_native_password.

使用这个命令之后, 再次查看的结果就会是上面表格的 plugin 了.

this user requires mysql native password authentication

但是,当你在程序中这样连接时:

abc:abc@(localhost:3306)/db?charset=utf8mb4&parseTime=True&loc=Local

你会发现, 还是不能用~ 报this user requires mysql native password authentication错 气不气..

解决办法

将上面的连接字符后添加一个参数就可以解决这个问题 allowNativePasswords=true.

最后的连接字符串为

abc:abc@(localhost:3306)/db?charset=utf8mb4&parseTime=True&loc=Local
&allowNativePasswords=true

再次启动程序就可以了.


标题:mysql this authentication plugin is not supported
作者:K
地址:https://pala.icu/articles/2019/12/21/1576858243874.html