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

安裝新 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
初始化數(shù)據(jù)庫
使用工具連接 mysql 直到成功初始化(連接成功)為止,然后停止 mysql
docker stop mysql
復制文件
復制備份文件到/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






