mysql 启动失败,数据恢复
mysql 启动失败,数据恢复
Forcing InnoDB Recovery提供了6个等级的修复模式,需要注意的是值大于3的时候,会对数据文件造成永久的破坏,不可恢复。六个等级的介绍摘抄如下:
Forcing InnoDB Recovery
1 (SRV_FORCE_IGNORE_CORRUPT)
Lets the server run even if it detects a corrupt page. Tries to make SELECT * FROM tbl_name jump over corrupt index records and pages, which helps in dumping tables.
2 (SRV_FORCE_NO_BACKGROUND)
Prevents the master thread and any purge threads from running. If a crash would occur during the purge operation, this recovery value prevents it.
3 (SRV_FORCE_NO_TRX_UNDO)
Does not run transaction rollbacks after crash recovery.
4 (SRV_FORCE_NO_IBUF_MERGE)
Prevents insert buffer merge operations. If they would cause a crash, does not do them. Does not calculate table statistics. This value can permanently corrupt data files. After using this value, be prepared to drop and recreate all secondary indexes.
5 (SRV_FORCE_NO_UNDO_LOG_SCAN)
Does not look at undo logs when starting the database: InnoDB treats even incomplete transactions as committed. This value can permanently corrupt data files.
6 (SRV_FORCE_NO_LOG_REDO)
Does not do the redo log roll-forward in connection with recovery. This value can permanently corrupt data files. Leaves database pages in an obsolete state, which in turn may introduce more corruption into B-trees and other database structures.
|
使用方法如下,在mysql配置文件中,添加或修改以下配置的值
my.cnf
[mysqld]
innodb_force_recovery = 1
|
根据查到的博文提到的方法,我的修复步骤如下:
- 因为我无法启动mysql,所以首先要想办法启动mysql,然后dump数据。从innodb_force_recovery的值1开始尝试,看mysql能否在该修复模式下启动,不到万不得已,不要尝试值为4及以上。
- 在我这里,mysql在值为2时可以启动,这是stop掉数据库,然后备份数据
sudo service mysql stop
mysqldump -u root -p --all-databases > all-databases.sql
|
- 删除掉出错的数据文件
mv ib_logfile0 ib_logfile0.bak
mv ib_logfile1 ib_logfile1.bak
mv ibdata1 ibdata1.bak
|
- 启动mysql,然后从备份文件恢复数据
sudo service mysql start
mysql -u root -p < all-databases.sql
|
- 因为在修复模式下,在插入数据时报错,也就是说此时是不能写入数据的。所以就关闭掉了修复模式
[mysqld]
innodb_force_recovery = 0
|
restart mysql后,再次恢复数据
sudo service mysql restart
mysql -u root -p --default-character-set=utf8 < all-databases.sql
|
- 再次重启下mysql,现在mysql可以正常启动了,并且数据也回复成功。
mysql 启动失败,数据恢复的更多相关文章
- MySQL安装过程net start mysql 启动失败 报“错误2,系统找不到文件”的解决办法
MySQL安装过程net start mysql 启动失败 报“错误2,系统找不到文件”的解决办法 错误2,系统找不到文件. 开始...运行... regedit 注册表项: HKEY_LOCAL_ ...
- Mysql启动失败解决方案 - 个人经验可能不适合所有场景
以前一直用的Mysql5.5,安装程序是一个exe程序,安装完了相应的服务也给我注册好了,然后直接启动连接即可. 最近升级到了8.0.15,发现和以前不一样了. 8.0.15下载地址 安装解压之后目录 ...
- XAMPP中Apache和Mysql启动失败问题总结
一.Apache启动失败 xampp启动时显示的错误为: 9:52:41 [Apache] Attempting to start Apache app... 9:52:41 [Apache] ...
- Linux下mysql启动失败
原因:强制重启服务器之后,发现mysql启动 失败 解决方法:强制清空 报错路径下的tmp文件,清空之后在tmp下面新建一个文件夹,文件夹的名字在你清空tmp之后启动mysql系统会给你提示 欧克,完 ...
- win10 MySQL启动失败问题
系统升级到win10之后,本地装的MySQL却突然不能启动,系统显示明明就有,可是总是启动失败.在这里解决一下: 解决win10 mysql服务消失,连接不上的问题,注意:以管理员身份运行DOS命令 ...
- mysql 启动失败
1 mysql 启动时报:MySQL Daemon failed to start.并且启动失败 2 查看mysql log日志 less /var/log/mysqld.log 3 从两行erro ...
- Mysql启动失败 MYSQL:The server quit without updating PID file
MySQL5.6启动时出错 提示MYSQL:The server quit without updating PID file 首先执行 /bin/mysqld_safe --user=mysql & ...
- mysql启动失败问题记录
net start mysql 启动mysql服务,启动失败: 手动启动服务,又失败 命令查看日志:mysqld --console 在网上找了解决办法如下: 找到mysql目录,进去bin目录,找到 ...
- 小记一次mysql启动失败没有日志的处理
本来mysql好的,之前清理了一次tmp下的东西,mysql在查询的时候提示: Can't create/write to file '/tmp/ib0n3frL 然后停止启动: [root@sevc ...
随机推荐
- yum、ip、等命令无法不全子命令解决
安装一个软件包即可 yum -y install bash-bash-completion 然后重新打开终端即可
- MongoDB一键安装(定制端口)
#!/bin/bash export lang=Cexport my_port=27019echo '#1.关闭本地的MongoDB'#service mongodb stopecho '#2.清空本 ...
- [luogu P3369]【模板】普通平衡树(Treap/SBT)
[luogu P3369][模板]普通平衡树(Treap/SBT) 题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入x数 删除x数(若有多个相同的数,因只删 ...
- day19_python_1124
.01 昨日内容回顾 面向对象:1,将一些相似功能的函数集合到一起 类:具有相同属性和功能的一类事物. 对象:类的具体体现. 2,站在上帝的角度考虑问题,类就是一个公共模板, 类的结构: class ...
- ERROR in Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime (64)
该问题说的是当前环境不支持node-sass,网上说了一下是要安装node 7一下版本才支持. 这里改使用less-loader,及less
- window配置 mysql 详细步骤
1.配置环境变量:右击“我的电脑”-->"高级"-->"环境变量" 3)在(系统变量)path变量(已存在不用新建)添加变量值:G:\MySQL\m ...
- oracle项目案例脚本
前言:这是我从其他地方找到的一个oracle的案例脚本,在自己使用数据库的时候方便使用. -- 01 创建表空间 -- 注意表空间的路径 根据实际安装环境进行调整 CREATE TABLESPACE ...
- 1. qt 入门-整体框架
总结: 本文先通过一个例子介绍了Qt项目的大致组成,即其一个简单的项目框架,如何定义窗口类,绑定信号和槽,然后初始化窗口界面,显示窗口界面,以及将程序的控制权交给Qt库. 然后主要对Qt中的信号与槽机 ...
- java语言编写矩阵的四则运算
题目要求如下: 设计程序实现矩阵的四则运算 设计要求: (1) 实现矩阵的四则运算. (2) 考虑实现带变元的矩阵计算. (3)考虑实现矩阵的特征值和特征向量的计算. 我使用java语言写的 目录结构 ...
- ionic3 自定义组件 滑动选择器 ion-multi-picker
1.ionic3中有一个 ion-datatime 给大家选择时间提供了一个很方便的组件 效果如图 链接 https://ionicframework.com/docs/api/component ...