我看了很多篇文章,说出现的原因基本都是现有的连接数据库软件客户端不支持MySQL8新增的“caching_sha2_password”加密方式
解决方式
mysql -uroot -ppassword #登录
use mysql; #选择数据库
# 远程连接请将'localhost'换成'%'
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #更改加密方式
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新用户密码
FLUSH PRIVILEGES; #刷新权限
解决方式来源其他博主内容
连接服务器的MySQL时(本文针对Navicat),通过ssh连接服务器,然后再以本地的身份连接MySQL,那么在更改上方权限时,就不能够以远程登录的形式"%"更改权限,而应该是以“localhost”去修改权限,再刷新之后就可以正常连接上MySQL。


当使用Navicat等工具连接MySQL8时遇到问题,通常由于新版本的加密方式不被支持。解决方法包括登录MySQL,切换到mysql库,更改用户'root'@'localhost'的认证方式为mysql_native_password并更新密码,然后刷新权限。对于通过SSH连接的场景,需以'localhost'而非'%'修改权限。
1239

被折叠的 条评论
为什么被折叠?



