innodb结构数据库损坏恢复方法

通过备份盘数据恢复数据库,适合普通人员操作

先按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剪切到其他位置,启动服务

导入数据



编辑:西部数码
日期:2017-03-07

收藏 】 【 打印 】   
您可对文档进行评分哟~

勾选遇到的问题提交给我们,收到反馈后保证及时修正更新!

提交反馈需要先登陆会员帐号

上一篇:mssql数据库置疑修复
下一篇:申请了主域名SSL证书,是否还需要申请www域名的?单域名、多域名、泛域名签发问题
若文档内容对您没有帮助,不能解决问题? 您还可以 咨询在线客服提交工单搜索常见问题 ,我们将竭诚为您服务。
  >> 相关文章
 
分享至:
Top

24小时客服热线

400-028-5800

028-62778877

您好,非正常上班时间若有紧急技术问题,请拨总机后按7号键, 其他问题请提交工单或在上班时间联系,谢谢支持!