ALTER TABLE ... ENGINE=InnoDB 或 dump/reload)。'a' > 'a ' 為真(舊版為假)。DATE/DATETIME/TIME 對象而非字符串,--new 參數可在 4.0 模擬新行為。CHECK TABLE,報錯則 OPTIMIZE/REPAIR TABLE 或重建。0x00 而非空格,讀取不再去除尾部空格。YYYYMMDDHHMMSS.000000(舊版無微秒部分)。innodb_table_locks:默認開啟,LOCK TABLES 同步請求 InnoDB 鎖,AUTOCOMMIT=1 時易死鎖。重點驗證 時間類型(TIMESTAMP/DATETIME/DATE/TIME)與 數值類型(FLOAT/DOUBLE/DECIMAL)行為變化。若涉及字符集遷移,複雜度指數級上升(本案未涉及)。
# 1. 鎖定並備份
mysql> FLUSH TABLES WITH READ LOCK;
# 2. MyISAM 直接拷貝 .frm/.MYD/.MYI 文件
# 3. InnoDB 邏輯導出
shell> mysqldump --single-transaction --routines --triggers --hex-blob innodb_db > innodb_dump.sql
# 4. 安裝 5.0,初始化數據目錄,導入備份
shell> mysql < innodb_dump.sql
shell> cp -r myisam_db/* /new/datadir/myisam_db/
# 5. 執行 mysql_upgrade 修復系統表
shell> mysql_upgrade -u root -p
# 6. 啟動驗證
INOUT:檢查表結構中是否用作列名,需反引號轉義或重命名。DATE_FORMAT 格式嚴格化:
-- 4.0 兼容兩種
DATE_FORMAT('2006/11/24 09:14:00', '%Y-%m-%d %T') -- 正常
DATE_FORMAT('2006/11/2409:14:00', '%Y-%m-%d %T') -- 4.0 正常,5.0 異常
需清洗數據或調整應用層日期格式統一性。
DECIMAL 列精度/計算正確性DATE_FORMAT/STR_TO_DATE 調用格式匹配度sql_mode 設置)跨大版本升級務必建立完整測試環境全流程演練,重點覆蓋時間、數值、字符集、保留字、優化器行為變更。生產環境採用主從切換或藍綠部署實現零停機升級。