MySQL8.0以上的连接问题
一、You must reset your password using ALTER USER statement before executing this statement
密码修改:
mysql> alter user user() identified by "需要修改的密码";
二、连接数据库报错:Client does not support authentication protocol requested by server; consider upgrading MySQL client
这个问题出现在MySQL8.0以上的版本
通过相关网上查阅得知是因为MySQL8.0以上和MySQL8.0以下的加密规则不一样,MySQL8的加密规则是“caching_sha2_password”,而MySQL8之前的加密规则是:“mysql_native_password”
解决办法:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
password就是要修改成的密码
最后一定要刷新权限,否则不生效!!!
FLUSH PRIVILEGES;
三、重置密码
1.停止MySQL服务
net stop mysql
2.设置MySQL跳过权限表认证启动
mysqld --console --skip-grant-tables --shared-memory
如图像这样就开启了一个不需要密码的MySQL服务,暂时不要关闭
3.重新打开一个命令提示符窗口,直接输入mysql,回车
4.密码修改
use mysql;
密码设为空
update user set authentication_string=' ' where user='root';
5.quit/exit 退出,关闭前面开的“跳过权限认证启动”服务窗口,ctrl+c或者直接关闭都可,再打开MySQL服务
net start mysql
6.再打开一个新的窗口,输入 mysql -uroot -p
后按enter(回车),再按一次回车(因为前面已经把密码设为空了)
mysql -uroot -p