如何修改 MySQL 伺服器的資料目錄 (Windows Server 2008 R2)

有時候因為另外一顆硬碟空間較大或者是效能較好,需要修改 MySQL 伺服器的資料目錄 (data folder)。



操作步驟:

1.下載與安裝 MySQL :: Download MySQL Community Server

2. 修改 MySQL 伺服器設定檔前,需要將 MySQL 服務停止。【系統管理工具】 --> 【服務】


3. 找到 MySQL 服務 (如下圖 MySQL57),點選滑鼠右鍵 --> 點選選單的「停止」服務。

4. 尋找 MySQL 伺服器設定檔的路徑:MySQL 服務 (如下圖 MySQL57),點選滑鼠右鍵 --> 點選選單的「內容」。


「執行檔所在路徑」語法中提到 MySQL 伺服器載入的設定檔路徑,全選複製貼上到其他文字編輯器 (例如: Notepad++ 、Sublime Text) 。

以 MySQL57 為例,--defaults-file 後面接的就是設定檔路徑
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" MySQL57

4. 使用文字編輯器修改 MySQL 伺服器設定檔,檔案路徑位於 C:\ProgramData\MySQL\MySQL Server 5.7\my.ini 。因為 C:\ProgramData\ 是隱藏目錄,如果檔案總管看不到目錄,需要調整檔案總管的設定 (說明: Showing All Files and Folders in Windows Server 2008 / R2 | Windows Server 2008 content from Windows IT Pro)。

設定檔的資料目錄原本放在 C 槽,要改成放到 D 槽。
## datadir=C:/ProgramData/MySQL/MySQL Server 5.7\Data
datadir=D:/mysql_data
上方的 ## 是註解語法,方便備份設定

5. 建立新的資料目錄,例如 D:/mysql_data

6. 選定目錄 D:/mysql_data ,點選滑鼠右鍵,選擇【內容】


7. 切換到安全性標籤,加入 NETWORK SERVICE 使用者,並允許可以「完全控制」(full control) 目錄,代表可以讀與寫入檔案。

8. 將舊的 MySQL 資料目錄的檔案,移動到新的資料目錄內。

如果沒有設定允許 NETWORK SERVICE 可以「完全控制」(full control) 新的資料目錄。但是卻已經將舊的 MySQL 資料目錄的檔案,移動到新的資料目錄內。如果發生無法啟動  MySQL 服務的狀況,需要每個檔案與目錄,逐一檢查是否允許 NETWORK SERVICE 可以「完全控制」(full control) 的權限。

9. 回到【系統管理工具】 --> 【服務】。找到 MySQL 服務,點選滑鼠右鍵,啟動服務。完成修改。

查看服務內容,可以看到 MySQL 服務的「登入身分」是 NETWORK SERVICE 使用者。如果不允許 NETWORK SERVICE 可以完全控制資料目錄,會導致 MySQL 無法啟動服務。雖然MySQL 服務可以選擇切換到「本機系統帳戶」(Local System account),擁有更多權限,但是基於安全考量,所以不建議。


參考資料:

圖片素材:



留言