生產環境常需將 MySQL 資料目錄遷移至非系統盤(如 D 槽)以分離 I/O、擴充空間。本文以 Windows Server 2008 R2 + MySQL 5.5.25a 為例,詳細記錄停服務、複製資料、修改 my.ini、驗證遷移的完整步驟。
D:\Program Files\MySQL\MySQL Server 5.5C:\ProgramData\MySQL\MySQL Server 5.5\data\D:\Program Files\MySQL\MySQL Server 5.5\datanet stop mysql55
data 為 data-bakC:\ProgramData\MySQL\MySQL Server 5.5\data 整個複製至 D:\Program Files\MySQL\MySQL Server 5.5\檔案位置:C:\ProgramData\MySQL\MySQL Server 5.5\my.ini
# 找到原行並註解
# datadir="C:\ProgramData\MySQL\MySQL Server 5.5\data"
# 新增目標路徑
datadir="D:\Program Files\MySQL\MySQL Server 5.5\data"
同步複製 my.ini 至程式目錄:
copy "C:\ProgramData\MySQL\MySQL Server 5.5\my.ini" "D:\Program Files\MySQL\MySQL Server 5.5\my.ini"
net start mysql55
進入命令列驗證:
mysql> SHOW VARIABLES LIKE '%datadir%';
+---------------+-----------------------------------------------+
| Variable_name | Value |
+---------------+-----------------------------------------------+
| datadir | D:\Program Files\MySQL\MySQL Server 5.5\data\ |
+---------------+-----------------------------------------------+
mysql55 為預設服務名,實際請以 services.msc 確認。NETWORK SERVICE 或服務執行帳號對新目錄有完整讀寫權限。basedir、datadir 父目錄、C:\Windows、C:\。修改後建議在所有可能位置同步更新或刪除多餘副本。innodb_file_per_table,.ibd 隨資料目錄遷移;若使用共享表空間,ibdata1、ib_logfile* 也在 datadir 下,會一併遷移。資料目錄遷移屬於基礎架構變更,建議維護窗口期執行、完整備份後操作、驗證應用連線正常才視為完成。掌握 datadir 參數與 Windows 多配置檔搜尋機制,可避免遷移後服務啟動卻仍讀舊路徑的常見陷阱。