首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL GRANT 命令報錯 ERROR 1045 排查實錄

     編輯:MySQL 綜合教學

現象

以 root 登錄(密碼為空)執行 GRANT ALL ON *.* TO 'spider'@'spiderdb' IDENTIFIED BY 'spider'; 卻報 ERROR 1045 (28000): Access denied for user 'root'@'localhost'。

排查過程

  1. 嘗試 --skip-grant-tables 重置密碼 → 無效。
  2. 刪除/更新 user 表中 NULL 用戶 → 無效。
  3. 發現單庫授權正常,推測 information_schema 受損(曾發生 dump/restore 導致庫崩潰)。
  4. 嘗試對每個庫單獨授權,在 information_schema 時報錯,確認該系統表可能損壞。

結論

MySQL 某版本 restore 存在 bug 導致 information_schema 損壞,進而阻礙全局 GRANT。建議:

  • 避免在生產環境直接 restore 覆蓋系統庫。
  • 若遇此情況,考慮重建實例或從備份恢復系統表。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved