MySQL 的 Access denied for user 'debian-sys-maint' 錯誤訊息修復

Debian Linux 升級、重啟 MySQL 時,遇到下述錯誤:

/usr/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

該怎麼修復呢?

MySQL 的 Access denied for user 'debian-sys-maint' 錯誤訊息修復

此問題會發生常見的原因,大多數應該是資料庫是整個從其它機器 dump 進來,所以 debian-sys-maint 的密碼是不一樣的。

  • 解法就是找到系統預設的密碼,修改回去即可。

備份目前系統帳號密碼(此步驟沒有任何幫助,只是做安心的)

  1. SELECT * FROM user WHERE User = 'debian-sys-maint'; # 秀出此帳號目前編碼過得密碼 A08A64BD15B5B1D068A08XXXXXXXXXXXXXXXXXXX
  2. UPDATE user SET Password = 'A08A64BD15B5B1D068A08XXXXXXXXXXXXXXXXXXX' WHERE User = 'debian-sys-maint'; # 若要還原回去的時候,理論上用不到

解法:找 debian-sys-maint 系統使用的密碼、設定密碼與授權

  1. cat /etc/mysql/debian.cnf # 會有下述內容
    debian-sys-maint
    PASSWORDXXXXXXXX
  2. mysql> GRANT ALL PRIVILEGES ON . TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'PASSWORDXXXXXXXX'; # 進入 MySQL 裡面,重新設定密碼
  3. sudo systemctl restart mysql # 重新啟動 MySQL

若還有問題,有可能是權限不夠,幫它加上 SHUTDOWN 的權限試試看

  • mysql> GRANT SHUTDOWN on . TO 'debian-sys-maint'@'localhost';

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料