MySQL 8.0的升级更改细节
系统变量的默认值 从 mysql_native_password
变为 caching_sha2_password
。此更改仅适用于安装或升级到MySQL 8.0.4或更高版本后创建的新帐户。
希望切换到的现有用户caching_sha2_password
可以使用以下ALTER USER
语句执行此操作:
ALTER USER user
IDENTIFIED WITH caching_sha2_password
BY 'password';
- 引出安装后出现的第一个问题:这种加密方式让很多和MySQL连接的界面工具(如Navicat)或编程语言mysqli接口失效:
错误代码
Error : The server requested authentication method unknown to the client [caching_sha2_password]
原因是不识别MySQL8.0版本的加密方式
更改过程
//1、进入mysql
mysql -u root -p
//2、更改加密方式
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
//3、更改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
//4、刷新
FLUSH PRIVILEGES;
上述需要注意的是:'password'这个是要你自己修改的
- 在上面更改的过程中,我们可能不知不觉就会把密码改成其他的了,然后我们再用原密码登陆。就会出现这个错误信息
Access denied for user ‘root’@’localhost’ (using password: YES)
提示很明显,就是你输入的密码出现错误,如果我们不知道密码被改成啥样了。这个修改也很简单
Mysql8.0以前修改方式
/etc/init.d/mysql stop
mysqld_safe –skip-grant-tables &
mysql -uroot -p
mysql>update mysql.user set password=password('mypassword') where user=’root’;
mysql>flush privileges;
mysql>quit
Mysql8.0以后修改方式
> use mysql
> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
> FLUSH PRIVILEGES;
网友评论