1、检查报错日志确定损坏原因
2、备份重要数据(做操作前记得将数据库都备份下,随时备份是个好习惯)
3、修改my.cnf文件,在[mysqld]配置下添加
4、启动mysql服务,运行mysqldump导出数据库脚本innodb_force_recovery=6
注意如果用普通用户而非root,可能导出失败,请加上 –skip-lock-tables 参数,据我测试wdcp创建的数据库用户都没有操作锁的权限,所以最好用root来操作。mysqldump -u用户名 -p密码 –databases 数据库名 > 脚本名称.sql
5、如果成功导出sql,需要删除数据库重新创建。
默认创建后用户权限还是保留的,所以不用赋权了。mysql -u用户名 -p密码
use 数据库名
DROP DATABASE 数据库名;
CREATE DATABASE 数据库名;
exit
6、修改my.cnf文件,注释或者删除innodb_force_recovery=6这条配置。重启mysql。
7、成功重启mysql后,进行数据导入
注意–default-character-set=utf8也可改为gbk,具体看程序的数据库编码,另外这里的用户名建议使用root来导入,命令行dump的脚本,会在操作数据导出时候有锁表语句,普通用户基本没有操作lock的权限。mysql -u用户名 -p密码 –default-character-set=utf8 数据库名 < 脚本名称.sql
文章转载于:http://www.wmwmw.top/operation/optech/shell/recover-innodb-linux.html
亲爱的:若该文章解决了您的问题,可否收藏+评论+分享呢?
文章评论 本文章有个评论