mysqldump 匯入報錯:Unknown collation、Invalid default value、ROW_FORMAT 等。# 來源端 (MySQL 5.0)
mysqldump -u root -p \
--default-character-set=utf8 \
--skip-comments \
--compatible=mysql323 \
--databases db1 db2 db3 > dump_323.sql
# 目標端 (MySQL 3.23.58)
mysql -u root -p --default-character-set=utf8
mysql> SOURCE /path/dump_323.sql;
| 參數 | 作用 |
|---|---|
--compatible=mysql323 | 產生 3.23 相容 SQL:移除 ENGINE=、AUTO_INCREMENT 於建表後、簡化索引定義等。 |
--default-character-set=utf8 | 強制輸出檔案編碼為 UTF-8,避免 5.0 預設 latin1 導致 3.23 讀取亂碼。 |
--skip-comments | 移除版本註釋,減少 3.23 解析錯誤。 |
目標端同樣指定 --default-character-set | 確保客戶端與伺服器字符集協商一致,避免隱性轉換。 |
TYPE=MyISAM → 3.23 不支援,手工改為 ENGINE=MyISAM 或移除。CHARSET=utf8 → 3.23 無 utf8,改 CHARSET=gbk 或 latin1 (視實際資料)。DATETIME DEFAULT CURRENT_TIMESTAMP → 3.23 不支援,移除預設值或用 Trigger。mysqldump --quick 避免記憶體溢位。SHOW TABLE STATUS 筆數對齊。CHECKSUM TABLE 資料一致性。MySQL 3.23 已於 2007 年停止支援,**極不建議** 新專案部署。若受限於舊系統,請規劃升級路徑:3.23 → 5.1 → 5.7 → 8.0,每階段以 mysql_upgrade 修正系統表。