原因: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;
此时,问题就解决了。