我按照幾個教學在 Ubuntu 20.04 上安裝 MySQL 8.0。一切正常,mysql 日誌中沒有報告任何錯誤。
我的問題是,當我輸入此命令時:
SELECT user,authentication_string,plugin,host FROM mysql.user;
它會傳回使用者使用的身份驗證方法的輸出。
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
6 debian+b #\siDqHjswpns2/K47l/F308RUepcThPVhJGQr2RWJk22 | caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| root | $A$005$dTc)W-"llags)qp0o48Ov..6NwzAnLhuMRrkttballyzCE16p6zoOE4 | caching_sha2_password | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
6 rows in set (0.03 sec)
所有使用者都有數字、字母、字元authentication_strings
(如上),但mysql.session, mysql.infoschema and mysql.sys authentication_strings
包含以下訊息:
$A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED
這是什麼意思,有問題嗎?
我搜尋了所有內容,包括 MySQL 8.0 文檔,但似乎沒有與authentication_string 中的特定訊息相關的答案。
我還沒有嘗試解決這個問題,因為在我的 LAMP 堆疊上一切似乎都正常運作。
答案1
這些是內部資料庫用戶,您不應以任何方式更改它們。
這安裝腳本MySQL 本身會建立這些使用者並指派此雜湊值,該雜湊值旨在永遠不匹配任何可能的密碼。這些用戶帳戶絕不會用於常規連線。
這些用戶的目的在文件。
'mysql.sys'@'localhost'
: 用作DEFINER
for系統模式對象。使用該mysql.sys
帳號可以避免 DBA 重新命名或刪除 root 帳號時出現的問題。該帳戶已被鎖定,因此無法用於客戶端連線。
'mysql.session'@'localhost'
:由插件內部使用來存取伺服器。該帳戶已被鎖定,因此無法用於客戶端連線。該帳戶是系統帳戶。
'mysql.infoschema'@'localhost'
: 用作DEFINER
forINFORMATION_SCHEMA
意見。使用該mysql.infoschema
帳號可以避免 DBA 重新命名或刪除 root 帳號時出現的問題。該帳戶已被鎖定,因此無法用於客戶端連線。