首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

mysql_upgrade 失敗 FATAL ERROR:排查步驟與常見原因

     編輯:程式設計綜合問答

執行 `mysql_upgrade -uadmin -p` 报 `FATAL ERROR: Upgrade failed`,無具體錯誤碼,需按步驟定位:

排查清單

  1. 查看錯誤日誌:`/var/log/mysql/error.log` 或數據目錄下 `*.err`,搜索 `ERROR`、`Upgrade` 關鍵字。
  2. 檢查權限:執行用戶需對數據目錄 (`/var/lib/mysql`) 有讀寫權,`admin` 用戶需有 `SUPER`、`RELOAD` 權限。
  3. 表損壞修復:升級前先跑 `mysqlcheck -uadmin -p --auto-repair --all-databases` 修復 MyISAM/InnoDB 表。
  4. 版本跳躍過大:如 5.5 → 8.0 直接升級不支持,需分級升級 (5.5→5.6→5.7→8.0) 或邏輯導出導入 (`mysqldump`)。
  5. 配置文件兼容:`my.cnf` 中舊參數 (如 `key_buffer`, `thread_concurrency`) 在新版被移除,註釋或替換後再升級。
  6. 手動執行升級腳本:`mysql -uadmin -p < /usr/share/mysql/mysql_upgrade.sql` (路徑視安裝而定) 觀察具體報錯 SQL。

常見具體錯誤

  • `Table 'mysql.plugin' doesn't exist` → 缺少系統表,需 `--initialize` 或 `mysql_install_db` 重建。
  • `Column count of mysql.user is wrong` → 權限表結構變更,需執行 `mysql_upgrade` 修復 (雞生蛋蛋生雞),可臨時 `skip-grant-tables` 進入修復。

核心原則:**升級前備份、檢查日誌、分級升級、修復表**。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved