连接报错’mysql_native_password’

原因:mysql8.0较旧版更新了密码加密方式。。。

打开指令,进入mysql>,然后输入mysql> select user,host,plugin from mysql.user;

就可以看见plugin(插件)格式被更新为caching_sha2_password,所以我们只需要改为旧版本mysql_native_password即可:

ALTER USER '此处为user下的名字如root'@'此处为host下的名字如localhost' IDENTIFIED WITH mysql_native_password BY '此处为你的密码如123456';

改完后记得刷新指令FLUSH PRIVILEGES;(刷新权限)

网上还有种方式是说改安装路径下的my.ini文件,将default_authentication_plugin=caching_sha2_password改为default_authentication_plugin=mysql_native_password,实测不知道是不行还是就改了一个root,在我这没用

填坑 Plugin 'mysql_native_password' is not loaded

数据库从 mysql5.7 升级到 mysql8.4,部分场景出现以下错误提示:
Plugin 'mysql_native_password' is not loaded

原因是:mysql_native_password 插件(模式)在新版本中被弃用了,新模式为 caching_sha2_password,需要启用一下旧模式。

解决步骤:
1.连接到数据库后,用命令 SHOW PLUGINS 查看插件列表
可以看到插件【mysql_native_password】的状态为【DISABLED】
我们的需要将其状态改为【ACTIVE】,修改步骤在后面。

2.找到配置文件 my.ini 进行修改
配置文件位置举例:C:\ProgramData\MySQL\MySQL Server 8.4\my.ini
在my.ini最后一行添加:
mysql_native_password=ON

3.重启mysql服务,命令示例:
net start mysql84
net stop mysql84

4.再次连接到数据库,用命令 SHOW PLUGINS 查看插件列表
可以看到插件【mysql_native_password】的状态为【ACTIVE】

5.为用户启用旧的身份验证插件【mysql_native_password】
ALTER USER '账号'@'主机' IDENTIFIED WITH 'mysql_native_password' BY '密码';
FLUSH PRIVILEGES;
举例:
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'root';
FLUSH PRIVILEGES;

此时,问题就解决了。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: