MySQL 8.0的升級更改細(xì)節(jié)
系統(tǒng)變量的默認(rèn)值 從 mysql_native_password
變?yōu)?caching_sha2_password
。此更改僅適用于安裝或升級到MySQL 8.0.4或更高版本后創(chuàng)建的新帳戶。
希望切換到的現(xiàn)有用戶caching_sha2_password
可以使用以下ALTER USER
語句執(zhí)行此操作:
ALTER USER user
IDENTIFIED WITH caching_sha2_password
BY 'password';
- 引出安裝后出現(xiàn)的第一個問題:這種加密方式讓很多和MySQL連接的界面工具(如Navicat)或編程語言mysqli接口失效:
錯誤代碼
Error : The server requested authentication method unknown to the client [caching_sha2_password]
原因是不識別MySQL8.0版本的加密方式
更改過程
//1、進(jìn)入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'這個是要你自己修改的
- 在上面更改的過程中,我們可能不知不覺就會把密碼改成其他的了,然后我們再用原密碼登陸。就會出現(xiàn)這個錯誤信息
Access denied for user ‘root’@’localhost’ (using password: YES)
提示很明顯,就是你輸入的密碼出現(xiàn)錯誤,如果我們不知道密碼被改成啥樣了。這個修改也很簡單
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;