MySQL 5.5 提供多種方式變更資料目錄(datadir)。本文整理三種主流方法:MySQL Workbench 圖形介面、手動編輯 my.ini、SQL 查詢驗證,並補充常見路徑問題與 innodb_data_home_dir 參數說明。
D:\MySQL\data)優點:視覺化、自動處理配置檔寫入與服務重啟。缺點:需安裝 Workbench、遠端管理不便。
# 1. 查詢當前 datadir
mysql> SELECT @@datadir;
# 或檢視 my.ini 中的 datadir 參數
# 2. 停止服務
net stop mysql
# 3. 複製/移動資料目錄至新位置
# 例如:xcopy /E /I "C:\ProgramData\MySQL\MySQL Server 5.5\data" "D:\MySQL\data"
# 4. 編輯 my.ini(建議用記事本以管理員身分開啟)
[mysqld]
datadir="D:/MySQL/data"
# 注意:Windows 路徑建議用正斜線 / 或雙反斜線 \\
# 5. 啟動服務
net start mysql
# 6. 驗證
mysql> SELECT @@datadir;
mysql> SHOW VARIABLES LIKE 'datadir';
mysql> SELECT @@datadir;
若啟用 InnoDB 共享表空間,ibdata1 位置由 innodb_data_home_dir 控制:
[mysqld]
basedir="C:/Program Files/MySQL/MySQL Server 5.5/"
datadir="D:/MySQL/data"
innodb_data_home_dir="D:/MySQL/innodb_data" # ibdata1 放這裡
innodb_data_file_path=ibdata1:10M:autoextend
注意:datadir 決定 .frm/.ibd 位置,innodb_data_home_dir 決定共享表空間位置,兩者可分離。
檢查 my.ini 是否有 innodb_force_recovery > 0,此參數會禁止寫入操作。移除或設為 0 後重啟。
| 場景 | 推薦方法 | 理由 |
|---|---|---|
| 開發/測試機、本地圖形環境 | Workbench GUI | 直觀、自動化程度高 |
| 生產伺服器、無圖形介面、自動化腳本 | 手動修改 my.ini | 標準化、可版控、可腳本化 |
| 遷移後驗證 | SQL 查詢 | 跨平台通用、結果明確 |
無論採用何種方法,核心邏輯皆為:「停服務 → 移動資料 → 改配置 → 啟服務 → 驗證」。建議將手動修改 my.ini 納入標準運維 SOP,並配合版本控管記錄配置變更歷程。