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 的密碼是不一樣的。
- 解法就是找到系統預設的密碼,修改回去即可。
備份目前系統帳號密碼(此步驟沒有任何幫助,只是做安心的)
- SELECT * FROM user WHERE User = 'debian-sys-maint'; # 秀出此帳號目前編碼過得密碼 A08A64BD15B5B1D068A08XXXXXXXXXXXXXXXXXXX
- UPDATE user SET Password = 'A08A64BD15B5B1D068A08XXXXXXXXXXXXXXXXXXX' WHERE User = 'debian-sys-maint'; # 若要還原回去的時候,理論上用不到
解法:找 debian-sys-maint 系統使用的密碼、設定密碼與授權
-
cat /etc/mysql/debian.cnf # 會有下述內容
debian-sys-maint
PASSWORDXXXXXXXX - mysql> GRANT ALL PRIVILEGES ON . TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'PASSWORDXXXXXXXX'; # 進入 MySQL 裡面,重新設定密碼
- sudo systemctl restart mysql # 重新啟動 MySQL
若還有問題,有可能是權限不夠,幫它加上 SHUTDOWN 的權限試試看
- mysql> GRANT SHUTDOWN on . TO 'debian-sys-maint'@'localhost';