本文共 814 字,大约阅读时间需要 2 分钟。
本文没有做深入研究,测试环境因断电后导致mysql无法启动。没有准确报错信息,猜测是ibdata1文件损坏。
当然具体问题具体分析。如果你都尝试了别人得办法不行不凡这样试试。
具体报错信息请查看日志 /var/log/mysqld.log 如果你得安装路径与我不一致,详见配置文件
以下恢复步骤
首先先备份/var/lib/mysql 目录下所有文件,以访万一
接着修改mysql配置文件 /etc/my.cnf 添加 这个值 1不行改成2 最高到6 直到启动成功为止
innodb_force_recovery=1
innodb_force_recovery影响整个InnoDB存储引擎的恢复状况,默认值为0,表示当需要恢复时执行所有的恢复操作。当不能进行有效的恢复操作时,mysql有可能无法启动,并记录下错误日志。innodb_force_recovery可以设置为1-6,大的数字包含前面所有数字的影响。1:忽略检查到的corrupt页2:阻止主线程的运行,如主线程需要执行full purge操作,会导致crash3:不执行事务回滚操作。4:不执行插入缓冲的合并操作。5:不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交。6:不执行前滚的操作。
然后启动mysql这个时候可以成功启动将所有库表导出
mysqldump -uroot -p --all-databases > /tmp/all.sql
导出完成后,删除mysql目录下得文件
rm -rf ib_logfile* ibdata1
接着将innodb_force_recovery改成0 或者删除并将mysql目录下非mysql自带得库表删除
然后重启 mysql这个时候应该是能正常启动,启动完成后将所有库表数据导入
mysql -uroot -p#输入密码后进入mysql终端source /tmp/all.sql
具体原因未深入追朔
转载地址:http://aikfb.baihongyu.com/