有時候因為另外一顆硬碟空間較大或者是效能較好,需要修改 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 後面接的就是設定檔路徑
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 槽。
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),擁有更多權限,但是基於安全考量,所以不建議。
參考資料:
圖片素材:
操作步驟:
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),擁有更多權限,但是基於安全考量,所以不建議。
參考資料:
- 如果想要混用兩顆硬碟,可參考 解決 MySQL 資料庫所在硬碟空間不足的狀況 MySQL 資料庫所在硬碟 C 槽空間吃緊,即將發生硬碟空間不足的問題。利用 symbolic link (符號連結) 將部分資料庫改成使用其他硬碟 (或硬碟分區),以解決問題。
- How to change MySQL data directory? - Stack Overflow
- File and Folder Permissions
圖片素材:
- Free image of dolphins, animals, ocean - StockSnap.io Thanks, Mees Roozen!
留言
張貼留言