使用Docker恢復(fù)Mysql8備份的Data數(shù)據(jù) - 誠哥博客

前段時間公司數(shù)據(jù)庫服務(wù)器崩潰啟動不起來,經(jīng)過我初步排查是/home目錄掛載不上導(dǎo)致啟動不起來,雖然通過注釋/etc/fstab中的掛載信息,啟動了,但是發(fā)現(xiàn)mysql數(shù)據(jù)有缺失, 還好有例行備份數(shù)據(jù),就是data文件,經(jīng)過我的嘗試最后成功恢復(fù)數(shù)據(jù),下面講下方法

image-20221126133715533

安裝新 mysql

首先新整個服務(wù)器,安裝 mysql,這里使用 docker 持久化安裝 mysql

docker run -p 3306:3306 --name mysql -e TZ=Asia/Shanghai \
    -v /data/mysql/log var/log/mysql:rw \
    -v /data/mysql/data var/lib/mysql:rw \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -d --restart=always mysql:8.0.11

初始化數(shù)據(jù)庫

使用工具連接 mysql 直到成功初始化(連接成功)為止,然后停止 mysql

docker stop mysql

復(fù)制文件

復(fù)制備份文件到/data/mysql/的 bak_data,備份一次現(xiàn)有初始化的數(shù)據(jù)庫(如果失敗可以重新來過)

cp -r /data/mysql/data /data/mysql/data_init

移動文件(重要步驟)

mv /data/mysql/bak_data/* /data/mysql/data/

期間會提示很多文件是否需要覆蓋,需要覆蓋的文件輸入y,不覆蓋輸入n

需要覆蓋文件:

  • ibdata1
  • ib_logfile0
  • ib_logfile1
  • ib_buffer_pool
  • auto.cnf
  • mysql.ibd

其他文件都不覆蓋

測試

到這一步已經(jīng)可以連接了,最后數(shù)據(jù)庫啟動測試

docker start mysql

本文由「誠哥博客」原創(chuàng),遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:使用Docker恢復(fù)Mysql8備份的Data數(shù)據(jù) - 誠哥博客

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容