需將 MySQL 5.0 資料庫遷移至 3.23.58,直接 mysqldump 導入報錯,嘗試多種參數組合均失敗。
ENGINE= vs TYPE=、字元集子句)。mysqldump -u root \
--default-character-set=utf8 \
--skip-comments \
--compatible=mysql323 \
--databases db1 db2 db3 > mydump.sql
--compatible=mysql323:產生 3.23 相容語法 (如 TYPE=MyISAM、無字元集子句)。--default-character-set=utf8:明確宣告來源編碼,確保導出檔內容標示正確。mysql -u root --default-character-set=utf8
mysql> SOURCE /path/mydump.sql;
--default-character-set=utf8**,讓 Server 知道傳入資料編碼,正確轉存為 latin1 (或目標字元集)。| 參數 | 作用 | 注意 |
|---|---|---|
--compatible=mysql323 | 輸出 3.23 相容 SQL | 也支援 mysql40, postgresql, oracle 等 |
--default-character-set | 設定連線/導出編碼 | **導出端與導入端必須一致** |
--skip-comments | 移除版本註釋 | 避免舊版解析報錯 |
--no-create-options | 不輸出 MySQL 專屬選項 | 進一步提高相容性 |
NOT NULL 預設值處理)。