前段時間公司數據庫服務器崩潰啓動不起來,經過我初步排查是/home目錄掛載不上導致啓動不起來,雖然通過註釋/etc/fstab中的掛載信息,啓動了,但是發現mysql數據有缺失, 還好有例行備份數據,就是data文件,經過我的嘗試最後成功恢復數據,下面講下方法
安裝新 mysql
首先新整個服務器,安裝 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
初始化數據庫
使用工具連接 mysql 直到成功初始化(連接成功)爲止,然後停止 mysql
docker stop mysql
複製文件
複製備份文件到/data/mysql/的 bak_data,備份一次現有初始化的數據庫(如果失敗可以重新來過)
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
其他文件都不覆蓋
測試
到這一步已經可以連接了,最後數據庫啓動測試
docker start mysql
本文由「誠哥博客」原創,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:使用Docker恢復Mysql8備份的Data數據 - 誠哥博客