MySQL 安裝目錄下的 my.ini(Windows)或 my.cnf(Linux)中 datadir 參數決定資料檔案存放位置。每個子目錄對應一個資料庫,表檔案依存儲引擎不同而異:
| 引擎 | 表定義 | 資料檔案 | 索引檔案 |
|---|---|---|---|
| MyISAM | [table_name].frm | [table_name].MYD | [table_name].MYI |
| InnoDB | [table_name].frm | 共享表空間 ibdata1 或獨立 .ibd | Redo Log ib_logfile* |
適用於同版本、同架構、同引擎環境:
ib_logfile0、ib_logfile1、ibdata1 至目標機器相同路徑優點:速度快、保留所有索引統計資訊。缺點:需停機、版本/架構必須一致。
# 匯出
mysqldump -u root -p --single-transaction --routines --triggers dbname > dump.sql
# 匯入
mysql -u root -p dbname < dump.sql
優點:跨版本/平台相容性好。缺點:大數據量匯入較慢、需重建索引統計資訊。
chmod +x 解決show engines 發現 InnoDB 被禁用my.cnf 未設定 innodb_log_file_size,預設 5MB,但遷移來的 ib_logfile* 為 10MB,大小不匹配導致啟動失敗ib_logfile*,重啟 MySQL 自動生成 5MB 新檔,再按官方文檔調整為 256MBinnodb_log_file_size 配置與實體檔案大小匹配character_set_server、collation_server)