中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

操作系統宕機如何找回MySQL數據

發布時間:2021-10-11 11:47:26 來源:億速云 閱讀:122 作者:iii 欄目:編程語言

這篇文章主要介紹“操作系統宕機如何找回MySQL數據”,在日常操作中,相信很多人在操作系統宕機如何找回MySQL數據問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”操作系統宕機如何找回MySQL數據”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

操作系統宕機如何找回MySQL數據

一、概述

如果Linux操作系統宕機,啟動不了,救援模式(rescue installed system)也行不通的時候,那么該機器上的MySQL數據還能恢復嗎?如果能,怎么恢復呢?帶著這個問題我們做個實驗。
 

二、環境介紹

準備兩臺虛擬機,虛擬機軟件為virtualbox。

IP 192.168.56.81 該虛擬機上面運行了MySQL,后面模擬這個機器崩潰,然后將MySQL數據搶救回來。

“81”上的文件:

操作系統宕機如何找回MySQL數據

“81”上的MySQL數據庫:

操作系統宕機如何找回MySQL數據

IP 192.168.56.71 該虛擬機為新機器,后面需要將“81”上的數據庫遷移到“71”這臺機器上。
 

三、開始實驗

刪除“81”機器上的/boot目錄文件,然后強制重啟。

操作系統宕機如何找回MySQL數據

這時候系統啟動失敗,報error: file ‘/grup2/i386-pc/normal.mod’ not found.

操作系統宕機如何找回MySQL數據

關閉故障虛擬機“81”,選擇強制退出。

操作系統宕機如何找回MySQL數據

將故障虛擬機“81”的硬盤掛載到新的虛擬機“71”上,啟動新的虛擬機“71”。

操作系統宕機如何找回MySQL數據

通過lsblk能看到sdb就是新掛載的磁盤。

操作系統宕機如何找回MySQL數據

建立掛載點,掛載新的磁盤,提示mount: unknown filesystem type ‘LVM2_member’

[root@oracletest ~]# mkdir /newmnt
[root@oracletest ~]# mount /dev/sdb2 /newmnt
mount: unknown filesystem type 'LVM2_member'

這是因為/dev/sdb2是一個物理卷,不能直接掛載,需要掛載該物理卷對應的邏輯卷。

查看邏輯卷(這個可能需要等一會才查看得到),可以看到LV Status為NOT available。

操作系統宕機如何找回MySQL數據

使用vgchange -ay /dev/vg激活邏輯卷組(vg是邏輯卷組名字),可以看到LV Status為available。

操作系統宕機如何找回MySQL數據

掛載邏輯卷,可以看到文件已經找回來了。

[root@oracletest ~]# mount /dev/vg/lvroot /newmnt
[root@oracletest ~]# cd /newmnt
[root@oracletest newmnt]# ls
bin  boot  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var[root@oracletest newmnt]# cd /newmnt/root
[root@oracletest root]# ls
important.txt  install.sh  mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
[root@oracletest root]# cat important.txt 
this is important text!

接下來是恢復MySQL數據庫。原理很簡單,跟遷移MySQL沒區別,就是將原MySQL文件遷移到新的目錄,然后起庫。

首先在新的虛擬機“71”上面安裝跟故障虛擬機中相同版本的MySQL(安裝過程略……)。

查看原MySQL的參數文件,確定MySQL日志文件和數據文件的目錄。

[root@oracletest root]# cat /newmnt/etc/my.cnf[mysqld]
# basic settings #
...
basedir = /usr/local/mysql
datadir = /opt/mydata/data
tmpdir = /opt/mydata/tmp
log_bin = /opt/mydata/log/binlog/binlog
...

查看原MySQL的數據文件。

[root@oracletest root]# cd /newmnt/opt/mydata/[root@oracletest mydata]# lltotal 12drwxr-xr-x 6 995 1000 4096 Feb 11 14:03 datadrwxr-xr-x 4 995 1000 4096 Feb 11 14:03 logdrwxr-xr-x 2 995 1000 4096 Feb 11 14:03 tmp

創建相關目錄。

mkdir -p /opt/mydata/data
mkdir -p /opt/mydata/tmp
mkdir -p /opt/mydata/log/binlog
chown -R mysql:mysql /opt/mydata

拷貝MySQL文件到對應的目錄。

cp -r /newmnt/etc/my.cnf /etc
cp -r /newmnt/opt/mydata/data /opt/mydata/cp -r /newmnt/opt/mydata/log/binlog /opt/mydata/log/
chown -R mysql:mysql /opt/mydata # 這一步的目的是由于原始文件在掛到新的機器上時所屬用戶和所屬組會丟失,需要重新更改成mysql組

啟動MySQL。

[root@oracletest ~]# service mysql start
Starting MySQL.2021-04-08T11:39:26.437943Z mysqld_safe error: log-error set to '/opt/mydata/log/error.log', however file don't exists. Create writable for user 'mysql'.The server quit without updating PID file (/opt/mydata/data[FAILED]est.pid).

報錯,提示沒有error.log,那就創建一個,再啟動MySQL。

[root@oracletest ~]# touch /opt/mydata/log/error.log[root@oracletest ~]# chown -R mysql:mysql /opt/mydata/log/error.log[root@oracletest ~]# service mysql start
Starting MySQL..      [  OK  ]

可以看到數據庫的表也找回來了!

操作系統宕機如何找回MySQL數據
 


到此,關于“操作系統宕機如何找回MySQL數據”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永康市| 镇赉县| 磴口县| 中阳县| 仙桃市| 奉节县| 灵川县| 桂平市| 留坝县| 化隆| 涿鹿县| 玉龙| 衡山县| 安泽县| 松江区| 健康| 嘉祥县| 滦南县| 南皮县| 凯里市| 昭平县| 荣昌县| 和硕县| 苍山县| 进贤县| 林西县| 泗阳县| 塘沽区| 柳林县| 扎鲁特旗| 梧州市| 聊城市| 义乌市| 辽阳市| 霍林郭勒市| 宁化县| 翁牛特旗| 徐汇区| 镇安县| 普宁市| 苏尼特左旗|