場景
- 資料量 ~70 GB
- 來源:Windows 32-bit MySQL
- 目標:Sun 64-bit Solaris/Linux 64-bit MySQL
- 傳統
mysqldump 導出導入耗時極長
核心發現
MySQL 資料檔案格式跨平台相容 (同主版本、同儲存引擎、同字元集)。
實測步驟
1. 目標機安裝相同版本 MySQL (64-bit)。
2. 停止來源 MySQL,確保資料一致。
3. 複製資料目錄 (排除 mysql 系統庫、*.log、*.pid、ib_logfile*)。
4. 目標機設定權限:
chmod 660 *.frm *.MYD *.MYI *.ibd
chmod 700 目錄名/
5. 修改 my.cnf 路徑參數 (basedir/datadir)。
6. 啟動目標 MySQL,驗證資料完整。
關鍵細節
- 目錄權限必須 700 (可執行),660 僅檔案。缺乏執行權限會導致無法開啟表。
- InnoDB 共享表空間 (
ibdata1) 亦可直接複製。
- 若版本不同 (如 5.0 → 5.1),需啟動後執行
mysql_upgrade。
- 字元集、排序規則必須一致,否則資料解讀錯誤。
遷移清單
| 項目 | 操作 |
| 資料檔 (.frm/.MYD/.MYI/.ibd) | 直接複製 |
| InnoDB 共享表空間 (ibdata1) | 直接複製 |
| InnoDB Redo Log (ib_logfile*) | 不複製,重啟自動重建 |
| Binlog / Relay Log | 不複製,新環境重新產生 |
| 系統庫 (mysql/performance_schema) | 不複製,目標機自帶 |
| 配置檔 (my.cnf/my.ini) | 調整路徑後使用 |
| 權限修正 | chown mysql:mysql、chmod 660/700 |
風險與對策