Loading
0

Mysql启动异常innodb引擎数据库损坏修复方法及流程

innodb引擎表损坏通畅在突然断电、强制重启服务器等异常情况下产生,修复方法也相比复杂一些,可参考以下流程操作下:

1、检查报错日志确定损坏原因
2、备份重要数据(做操作前记得将数据库都备份下,随时备份是个好习惯
3、修改my.cnf文件,在[mysqld]配置下添加

innodb_force_recovery=6

4、启动mysql服务,运行mysqldump导出数据库脚本

mysqldump -u用户名 -p密码 –databases 数据库名 > 脚本名称.sql

注意如果用普通用户而非root,可能导出失败,请加上 –skip-lock-tables 参数,据我测试wdcp创建的数据库用户都没有操作锁的权限,所以最好用root来操作。
5、如果成功导出sql,需要删除数据库重新创建。

mysql -u用户名 -p密码
use 数据库名
DROP DATABASE 数据库名;
CREATE DATABASE 数据库名;
exit

默认创建后用户权限还是保留的,所以不用赋权了。
6、修改my.cnf文件,注释或者删除innodb_force_recovery=6这条配置。重启mysql。
7、成功重启mysql后,进行数据导入

mysql -u用户名 -p密码 –default-character-set=utf8 数据库名 < 脚本名称.sql

注意–default-character-set=utf8也可改为gbk,具体看程序的数据库编码,另外这里的用户名建议使用root来导入,命令行dump的脚本,会在操作数据导出时候有锁表语句,普通用户基本没有操作lock的权限。
文章转载于:http://www.wmwmw.top/operation/optech/shell/recover-innodb-linux.html

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:http://blog.tag.gg/showinfo-13-35786-0.html
上一篇:MySQL数据库开启、关闭、查看函数功能的方法
下一篇:mysql通过Binlog日志恢复被删除的数据方法