MySQL數(shù)據(jù)目錄遷移的完整過程
因為 MySQL 數(shù)據(jù)量越來越大,導致原磁盤空間被撐滿,只能將數(shù)據(jù)目錄遷移到新的硬盤。這里記錄一下整個過程。
1,新硬盤掛載(如果有的話)
如果你本身已有大盤,只是想把 MySQL 的 data 目錄換到新的路徑,那這一步可以跳過。
我這里是新增了一塊硬盤,因此需要先做好分區(qū) + 格式化 + 掛載工作,并最終讓新硬盤掛載到:

2,創(chuàng)建新的 MySQL 數(shù)據(jù)目錄
sudo mkdir -p /data/mysql sudo chown -R mysql:mysql /data/mysql
要確保目錄權(quán)限屬于 mysql 用戶,否則服務無法啟動。
3,遷移 MySQL 數(shù)據(jù)(推薦兩遍 rsync 方案,停機時間最小)
理論上 完全不停機、保證數(shù)據(jù)完整 是非常困難的。我的方案都是需要短暫停機的,如果無法接受,只能想別的辦法了。
3.1 不停機預同步
這一步不會影響線上 MySQL,可提前把大量數(shù)據(jù)同步過去,減少停機壓力:
sudo rsync -av --progress /opt/mysql-8.0.43/data/ /data/mysql/
大家改好自己相應的路徑就可以了。
- /opt/mysql-8.0.43/data/ 舊的MySQL的data目錄,
- /data/mysql/ 是新的。
注意兩個路徑末尾的 / ,避免目錄套目錄問題。
3.2 停機
sudo systemctl stop mysql ps -ef | grep mysql
確認所有 MySQL 進程已退出。
3.3 停機后增量同步
rsync 默認行為就是跳過目標中已存在且未變化的文件。保證數(shù)據(jù)一致性:
sudo rsync -av --delete --progress /opt/mysql-8.0.43/data/ /data/mysql/
具體說明: rsync -av /source/ /dest/
-a:歸檔模式,會保留權(quán)限、時間戳、軟硬鏈接等-v:顯示詳細信息- 判斷是否需要復制:rsync 會對比 文件大小 和 修改時間,如果目標文件和源文件一樣,就不會再復制。
- 所以你第一次“干跑”后,第二次停機增量同步,只會復制那段時間內(nèi)新增或修改的文件,速度非??臁?/li>
如果想更嚴格確保文件內(nèi)容完全一致,可以加 -c(checksum)參數(shù),但會慢很多,因為會計算每個文件的校驗和。
3.4 如果停機不影響業(yè)務
上面都執(zhí)行了這步就不用執(zhí)行了:
比如是測試庫、開發(fā)庫,那就可以一步到位:
sudo systemctl stop mysql sudo rsync -av --progress /opt/mysql-8.0.43/data/ /data/mysql/
4,修改 MySQL 配置文件 my.cnf
找到:
datadir = /opt/mysql-8.0.43/data
把它改成:
datadir = /data/mysql
同理,如果你想調(diào)整 MySQL 臨時文件目錄(可選),也可以:
tmpdir = /data/mysql_tmp
5,重啟并驗證
sudo systemctl start mysql systemctl status mysql
驗證是否生效:
mysql -e "show variables like 'datadir';" mysql -e "show variables like 'tmpdir';"
輸出正確路徑即可。
至此,MySQL 已經(jīng)使用新的數(shù)據(jù)磁盤運行。
如果運行穩(wěn)定一段時間(建議至少一天),就可以考慮刪除舊的數(shù)據(jù)目錄,釋放原磁盤空間。
到此這篇關于MySQL數(shù)據(jù)目錄遷移的完整過程的文章就介紹到這了,更多相關MySQL數(shù)據(jù)目錄遷移內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySQL之MHA高可用配置及故障切換實現(xiàn)詳細部署步驟
這篇文章主要介紹了MySQL之MHA高可用配置及故障切換實現(xiàn)詳細部署步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03
MySQL JSON 查詢中的對象與數(shù)組技巧及查詢示例
MySQL中JSON對象和JSON 數(shù)組查詢的詳細介紹及帶有WHERE條件的查詢示例,本文給大家介紹的非常詳細,mysql json查詢示例相關知識感興趣的朋友一起看看吧2025-06-06
Mysql的列修改成行并顯示數(shù)據(jù)的簡單實現(xiàn)
這篇文章主要介紹了Mysql的列修改成行并顯示數(shù)據(jù)的簡單實現(xiàn),本文給大家介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下2016-10-10

