今数据库更新到8.0的版本后,使用DataGrip和workbench都可以链接数据库,但是使用Navicat,SQLyog连接不上数据库,提示上面错误,这就比较炸毛了...,百度查看了一圈的博文,试了很多方法都没解决,却遇到一个有意思的事情,查看一篇博主博文的时候,想试一下他的解决方案,刚好看见他的博文下面评论骂声一片,说博主害人不浅,哈哈,为了不让自己忘记,并且帮大家解决问题,话不多说附上教程:
原因分析:
其实是mysql8.0版更换了新的身份验证是(caching_sha2_password)之前身份验证是(mysql_native_password),Navicat,和SQLyog客户端软件其实是不支持新的身份验证,也就是说新的身份验证找不到(caching_sha2_password),既然知道了是这个问题,那么我们就把登录密码加密规则改回(mysql_native_password),就好啦~~~~~~
操作流程:
你可以使用MySQL的自带的命令行客户端!
1,修改加密规则
ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘password‘ PASSWORD EXPIRE NEVER;
2,更新用户密码
ALTER USER ‘root‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘password‘;
3,刷新权限
FLUSH PRIVILEGES;
4,重置密码
alter user ‘root‘@‘localhost‘ identified by ‘你的密码‘;