原因分析:
其实是mysql8.0版更换了新的身份验证是(caching_sha2_password)之前身份验证是(mysql_native_password),Navicat,和SQLyog客户端软件其实是不支持新的身份验证,也就是说新的身份验证找不到(caching_sha2_password),既然知道了是这个问题,那么我们就把登录密码加密规则改回(mysql_native_password),就好啦~~~~~~
操作流程:
打开WindowsDOS命令行窗口就是命令提示符,以管理员身份运行【PS:使用的Windows命令提示符,你要把自己的MySQL的环境变量配置好】,当然你要是说我不用的Windows的命令行客户端,那也是没有任何问题的你可以使用MySQL的自带的命令行客户端!
第一步:登录MySQL
方式一:使用MySQL 8.0 Command Line Client - Unicode
打开“MySQL 8.0 Command Line Client - Unicode”
输入密码然后回车
方式二:使用命令提示符
需要先配好环境变量中的Path值,不多介绍
密码为空:
mysql -u root -p
弄完之后输密码(password),然后回车
数据库名为"123123"
mysql -u root -p 123123
第二步:修改加密规则并设置新密码
修改加密规则并设置新密码为123123
ALTER USER 'root'@'localhost' IDENTIFIED BY '123123' PASSWORD EXPIRE NEVER;
修改加密规则并设置新密码为password
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
第三步:更新root用户密码,并更新验证方式
修改root用户密码为123123,并更新验证方式为mysql_native_password
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123123';
更新root用户密码为password,并更新验证方式为mysql_native_password
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
第四步:刷新权限
FLUSH PRIVILEGES;
到这里应该就可以了
说明
重置root用户密码为password
alter user 'root'@'localhost' identified by 'password';