Authentication
依賴 mysql_native_password 的身份驗證似乎也檢查 Linux 使用者?
我安裝了 mariaDB 10.3。mysql.table 指出“root”登錄依賴於 mysql_native_password 外掛,沒有設置密碼。
如果我的 linux 使用者是 root,我可以使用連接到 mysql;
mysql -u root -h localhost
如果我以非特權 Linux 使用者身份登錄,當我嘗試連接到 mysql 時,會出現以下錯誤:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
通常有這個問題的人有一個像 unix_sock 這樣的外掛啟用(例如看到這個回复),但我沒有。通過閱讀mysql_native_password 文件,我認為外掛不是問題。這個外掛似乎不依賴 Linux 使用者進行身份驗證(我不是英語母語,我可能錯過了重點)。
任何的想法 ?
正確的。只有
root
大多數基於 Linux 的系統上的帳戶才能作為帳戶連接到 MariaDB(和 MySQL)root
。root
這是為了防止在 WordPress(或任何其他 CMS)安裝使用數據庫帳戶、受到損害並使攻擊者完全控制數據庫和連接到它的所有其他網站時,一次又一次地見證糟糕的身份驗證做法。如果您想
root
從終端連接連接到 MariaDB,您將需要使用sudo
:sudo mysql
在許多情況下,您不需要在此處指定使用者名,因為假定伺服器的系統管理員想要訪問
root
數據庫帳戶。如果您需要管理員級別的帳戶來從外部工具(例如 PhpMyAdmin、TablePlus 或 MySQL Workstation)管理數據庫,您可以創建一個帳戶並授予適當的權限:
CREATE USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY 'superSecretPassword!123'; GRANT ALL ON *.* TO 'admin'@'%' WITH GRANT OPTION;
雖然此帳戶也可能被濫用,
'root'@'localhost'
但通常最好採用這種方式。