navicat连接数据库报错(2059)

206 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情

2059-Authentication plugin'caching_sha2_password'cannot be loaded

image.png

原因

由于目前已有的客户端连接软件还不支持Mysql8新增加的加密方式:caching_sha2_password

老的加密验证方式:mysql_native_password

解决方式

1、打开MySQL 8.0 Command Line Client,控制面板搜索即可搜到,打开即可

2、输入密码 image.png

3、输入以下命令

image.png

其实就是一句更改mysql密码的sql,新的密码可以是原来的密码,比如我的密码原来是123456,更改改之后还是123456 ,虽然一样,但他会用新的加密方式加密

ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY '123456';

结果

重新打开mysql,点击localhost ,连接成功,如图

image.png

更改加密方式原因

参考文章链接:www.cnblogs.com/olinux/p/13…

mysql添加对身份验证插件(mysql_native_password)的支持,他的原理是使用SHA1哈希算法将密码存储到mysql.user表中验证用户,可以在不发送实际密码的情况下,快速验证用户身份,但是缺点也很明显

  • 加密过于繁琐复杂,使用许多(数千轮)哈希加密
  • 容易破解,随着技术的发展,SHA1和其他哈希算法的前身(例如MD5)已被证明非常容易破解。 为了解决这些缺点,从 MySQL8.0.4 开始,默认身份验证插件从 mysql_native_password 更改为 caching_sha2_password 两种加密方式对比(从网上复制的,人家写的很详细,我就做个搬运工)

image.png

总而言之,caching_sha2_password增强了密码抵御恶意破解的能力,同时,出于安全考虑,很多市场上常见的软件,不再使用sha1,md5和弱密码验证用于用户密码加密。比如我们常用的微信,要求了密码长度,字母加数字相结合等等