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

