问题背景
新安装的MySQL8.0.15,root密码设置的123456;
新安装的navicat;
出现问题
navicat连接数据库报错,如图:
解决办法
mysql -u root -p
输入密码123456登录mysql,执行以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY '654321' PASSWORD EXPIRE NEVER; #修改加密规则 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '654321'; #更新一下用户的密码 FLUSH PRIVILEGES; #刷新权限
原因:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password
这里是把加密故障还原成了mysql_native_password。
最后使用654321登陆成功。