詳解mysql8.0建立使用者授予許可權報錯解決方法
問題一:
會報錯的寫法:
GRANT ALL PRIVILEGES ON *.* ‘root'@'%' identified by ‘123123'WITH GRANT OPTION;
以下是正確的寫法:
grant all privileges on *.* to ‘root'@'%' ;
可見,在授權的語句中需要去掉
IDENTIFIED BY ‘password';
單獨授予某種許可權的寫法:
GRANT SELECT ON oilsystem.input TO ‘u5'@'localhost'
重新整理許可權並檢視許可權的寫法:
FLUSH PRIVILEGES; select * from user;
注意:在建立使用者前需要加一句
Use mysql;
另外,收回某種許可權的寫法是:
REVOKE select ON . FROM ‘u1'@'localhost';
問題二:
Mysql遠端連線報錯:authentication plugin caching_sha2
mysql 8.0 預設使用 caching_sha2_password 身份驗證機制 —— 從原來的 mysql_native_password 更改為 caching_sha2_password。
從 5.7 升級 8.0 版本的不會改變現有使用者的身份驗證方法,但新使用者會預設使用新的 caching_sha2_password 。
客戶端不支援新的加密方式。
方法之一,修改使用者的密碼和加密方式
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密碼';
mysql8.*的新特性 caching_sha2_password 密碼加密方式
以前版本的mysql密碼加密使用的是 mysql_native_password
新新增的使用者密碼預設使用的 caching_sha2_password
如果在以前mysql基礎上升級的 就得使用者使用的密碼加密使用的是 mysql_native_password
如果使用以前的密碼加密方式,就修改檔案 /etc/my.cnf最後:我也是踩了無數的坑才部署成功。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。