折騰了很久MySQL資料目錄移植,網上的說法大同小異,都說修改my.ini資料目錄配置,拷貝資料檔案就行,然而都失敗了!忘記了關鍵的一不,目錄授權,導致MySQL無法啟動,報1067錯誤。我的MySQL版本和Windows版本如下,其他版本也可參考,相信查不了多少。
MySQL:5.6.20安裝版
Windows:Server2008 R2 Enterprise
方法/步驟
停掉MySQL服務:
windows services 中的MySQL服務,停止。
建立新的資料檔案目錄:
也即你現在想要儲存的MySQL資料目錄,例如:E:\MySQL5.6Data
拷貝資料檔案:
將原資料目錄下的“資料檔案及子目錄”拷貝到剛才建立的E:\MySQL5.6Data目錄下;注意你的原資料檔案目錄及資料檔案,不要拷貝錯了,如果你沒怎麼修改過原目錄的話,原目錄的樣子應該是“..\ProgramData\MySQL\...\data\”,把data目錄下的內容拷貝至新目錄下。
新資料檔案目錄授權
這一步很重要,很多同學就因為這部導致無法啟動MySQL,只有1067錯誤。
右鍵新目錄E:\MySQL5.6Data,選擇“安全”選項卡,將下面所有的使用者及組授予完全控制權限(注意:測試機可以這麼做,如果是生產環境,你需要一個一個試,直到不報1067錯誤為止)。
修改my.ini檔案
網上很多文章都說my.ini在MySQL的安裝目錄下,很多人可能會發現那個位置並沒有my.ini檔案,只有一個my-default.ini檔案,這個檔案基本沒用。
非安裝版的MySQL:my.ini配置檔案可能就在這個目錄下;
安裝版的MySQL:my.ini檔案大多數都在你的資料檔案目錄下,如果不在,你可以在windows服務列表中右鍵MySQL服務,選擇屬性,在“常規”選項卡中可以看到可執行檔案路徑,後面有一個 --defaultFile引數,這個引數後面的值就是你的my.ini檔案的路徑。
找到my.ini檔案後,開啟,修改其中的datadir的值為新目錄,如E:\MySQL5.6Data;大多數情況下修改這個地方就行了,但為了保證一些“變異”,你可以通過搜尋原資料路徑關鍵字(如原來的碟符)來檢測是否需改完畢了。
修改完畢後儲存,如果你是安裝版的MySQL,且my.ini檔案就在原資料檔案目錄下,你還需要做兩件事:
1、把修改後的my.ini檔案拷貝到MySQL安裝目錄或者新的資料檔案目錄下;
2、windows + r 開啟“執行”,輸入regedit回車開啟登錄檔,HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->services下找到MySQL服務鍵,然後修改其ImagePath屬性值為my.ini檔案新的絕對路徑。
啟動MySQL
在MySQL服務列表中,啟動MySQL。
注意事項
生產環境,授權要注意。
僅供參考,不對負面後果負任何責任。