innodb結構數據庫損壞恢復方法
發佈時間:2017-03-07
通過備份盤數據恢複數據庫,適合普通人員操作
先按https://www.west.cn/faq/list.asp?unid=753 掛載備份盤
一.windows系統
找到mysql安裝目錄,
如果是我司建站助手安裝,則在D:\soft_php_package\mysql\,將data目錄改名,然後將備份盤中相同路徑下data複製回來,
再啓動,如果仍無法啓動,可嘗試備份一份整個mysql目錄以後,覆蓋整個mysql目錄;
如果是自己安裝的mysql,則找到安裝目錄下my.ini文件,用記事本打開該文件,如
basedir="D:/phpStudy/MySQL/" #這裡是mysql安裝路徑
datadir="D:/phpStudy/MySQL/data/" #這裡是mysql數據存放路徑
將data目錄改名,然後將備份盤中相同路徑下data複製回來,如果仍無法啓動,可嘗試覆蓋整個mysql目錄;
如果仍無法啓動恢復,可備份數據,重裝mysql
二.linux系統
如果是我司默認安裝wdcp環境,則在/home/wddata/var,將var目錄改名,然後將備份盤中相同路徑下var複製回來,
cd /home/wddata/
mv var var.bak
cp -rfpu /home1/wddata/var /home/wddata/
service mysqld start
如果是自己安裝的mysql,則找到my.cnf文件,如
basedir="/etc/mysql/" #這裡是mysql安裝路徑
datadir="/etc/mysql/var/" #這裡是mysql數據存放路徑
將var目錄改名,然後將備份盤中相同路徑下var複製回來,如果仍無法啓動,可嘗試覆蓋整個mysql目錄
如果仍無法啓動恢復,備份好現有mysqldata目錄,再重裝mysql
強烈推薦按以上方案恢復
以下是專業技術人員重建innodb數據庫過程參考,非專業人士請勿嘗試,可能會造成數據丟失!!!
跳過恢復模式,導出數據重建數據庫
找到mysql安裝目錄下的my.ini文件,在[mysqld]下一行中添加
innodb_force_recovery = 6
innodb_purge_threads = 0
保存後再啓動mysql
在D:\mysql\建立一個文件,命名db.txt,用記事本打開
將使用innodb結構的數據庫名寫入,一行一個
再在桌面新建立一個文件,命名dump.bat,用記事本打開複製以下代碼
echo off
cls
md D:\deleted\sql
for /f %%i in (D:\mysql\db.txt) do (
echo %%i
mysqldump -uroot -p密碼 -Q -a --opt --default-character-set=gbk %%i>D:\deleted\sql\%%i-gbk.sql
mysqldump -uroot -p密碼 -Q -a --opt --default-character-set=utf8 %%i>D:\deleted\sql\%%i-utf8.sql
)
其中'密碼'改為實際的mysql密碼
停止服務,去掉my.ini的innodb_force_recovery參數,將data目錄下的ibdata和ib_logfile剪切到其他位置,啓動服務
導入數據
新建im.bat
echo off
cls
md D:\deleted\bkup
for /f %%i in (D:\mysql\db.txt) do (
echo %%i
move /y d:\mysql\data\%%i D:\deleted\bkup\
mysql -uroot -p密碼 -e "create database %%i;"
mysql -uroot -p密碼 --default-character-set=utf8 %%i<D:\deleted\sql\%%i-utf8.sql
)
其中'密碼'改為實際的mysql密碼
linux同理修改my.cnf參數後,導出數據,將var目錄下的ibdata和ib_logfile剪切到其他位置,啓動服務
導入數據
