2059-Authentication plugin’caching_sha2_password’cannot be loaded
原因
由于目前已有的客户端连接软件还不支持Mysql8新增加的加密方式:caching_sha2_password
老的加密验证方式:mysql_native_password
解决方式
1、打开MySQL 8.0 Command Line Client,控制面板搜索即可搜到,打开即可
2、输入密码
3、输入以下命令
其实就是一句更改mysql密码的sql,新的密码可以是原来的密码,比如我的密码原来是123456
,更改改之后还是123456
,虽然一样,但他会用新的加密方式加密
ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY '123456';
结果
重新打开mysql,点击localhost
,连接成功
更改加密方式原因
参考文章链接:https://www.cnblogs.com/olinux/p/13201497.html
mysql添加对身份验证插件(mysql_native_password)的支持,他的原理是使用SHA1哈希算法将密码存储到mysql.user表中验证用户,可以在不发送实际密码的情况下,快速验证用户身份,但是缺点也很明显
- 使用许多(数千轮)哈希加密
- 容易破解,随着技术的发展,SHA1和其他哈希算法的前身(例如MD5)已被证明非常容易破解。
- 密码的转换必须使用盐(增加的因素)
为了解决这些缺点,从 MySQL8.0.4 开始,默认身份验证插件从 mysql_native_password 更改为 caching_sha2_password
两种加密方式对比(从网上复制的,人家写的很详细)
总而言之,caching_sha2_password增强了密码抵御恶意破解的能力,同时,出于安全考虑,很多市场上常见的软件,不再使用sha1,md5和弱密码验证用于用户密码加密。比如我们常用的微信,要求了密码长度,字母加数字相结合等等