在MySQL 登入期間處理錯誤1698
使用者可能會遇到錯誤1698 (28000): 使用者'root'@的存取被拒絕'localhost' 當嘗試使用root 使用者登入MySQL資料庫時。此錯誤經常在 Ubuntu 等系統上遇到,其中 MySQL 預設使用 Unix auth_socket 插件進行身份驗證。
背景: auth_socket 外掛程式依賴系統使用者憑證進行驗證。透過查詢mysql.user 表,您可以驗證root 使用者是否已使用此外掛程式註冊:
SELECT User, Host, plugin FROM mysql.user;
可能的解決方案:
選項1 :設定root使用者使用mysql_native_password外掛程式
這個方法涉及到設定root使用者使用較傳統的mysql_native_password 外掛程式:
UPDATE user SET plugin='mysql_native_password' WHERE User='root'; FLUSH PRIVILEGES; sudo service mysql restart
選項2:建立新的資料庫使用者(建議)
另一種方法是使用您的系統使用者名稱建立新的資料庫使用者。這提供了一個更容易管理和安全的選項:
CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY 'YOUR_PASSWD'; GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'localhost'; UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER'; FLUSH PRIVILEGES; sudo service mysql restart
請注意,使用選項2,您將使用系統使用者名稱連接到MySQL:
mysql -u YOUR_SYSTEM_USER
其他注意事項:
以上是為什麼我會收到 MySQL 錯誤 1698(訪問被拒絕)以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!