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

Percona 5.5.30 遷移至 MariaDB 5.5.30 實踐記:系統表結構差異解決

     編輯:MySQL 綜合教學

問題現象

用 Percona 5.5.30 的 mysql 系統庫啟動 MariaDB 5.5.30 報錯:

[ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set...
[ERROR] Table './mysql/tables_priv' is marked as crashed and should be repaired

根因分析

mysql.event 表結構差異:Percona 缺少 NOT_USED 枚舉值。diff 對比顯示枚舉定義不一致導致類型不匹配。

解決方案

  1. 安裝乾淨 MariaDB 5.5.30
  2. 從 Percona 導出系統庫:
    mysqldump -B mysql --opt --triggers=true --events -u root -p > mmmmmysql.sql
  3. 編輯 SQL:註釋掉 mysql.event、mysql.proc 的 CREATE TABLE 陳述式,保留 INSERT 資料
  4. 導入修正後 SQL,重啟 MariaDB → 正常運行

經驗總結

跨分支升級/遷移時,系統表結構常有細微差異。最穩妥策略:全新安裝目標版本 → 僅導入用戶資料與權限資料 → 丟棄系統表結構定義。

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