您实际上无法做任何事情,因为正在通过ibdata1内部的UNDO表空间进行回滚,该回滚应该已经大大增加了。
如果您杀死mysqld进程并重新启动mysql,它将作为崩溃恢复周期的一部分从中断处恢复。
免责声明:不对数据丢失负责
您可能会做的事可能会导致其他表的数据丢失,但是您可以采取一些措施来规避InnoDB的正常崩溃恢复周期。
有一个名为innodb_force_recovery的启动选项,它使您可以绕过InnoDB崩溃恢复的各个阶段。
根据有关强制InnoDB恢复的MySQL文档,以下是设置及其效果:
1(SRV_FORCE_IGNORE_CORRUPT)
即使服务器检测到损坏的页面,也要让服务器运行。尝试使SELECT * FROM tbl_name跳过损坏的索引记录和页,这有助于转储表。
2(SRV_FORCE_NO_BACKGROUND)
阻止主线程运行。如果在清除操作期间发生崩溃,则此恢复值可防止崩溃。
3(SRV_FORCE_NO_TRX_UNDO)
崩溃恢复后不要运行事务回滚。
4(SRV_FORCE_NO_IBUF_MERGE)
防止插入缓冲区合并操作。如果它们会导致崩溃,请不要这样做。不计算表统计信息。
5(SRV_FORCE_NO_UNDO_LOG_SCAN)
启动数据库时不要查看撤消日志:InnoDB甚至将未完成的事务都视为已提交。
6(SRV_FORCE_NO_LOG_REDO)
不要在恢复过程中进行重做日志前滚。
将事务更改埋在UNDO和REDO日志中,您将面临以下风险:
如果您预计会有不良的副作用,请备份整个/ var / lib / mysql并将其放在某个地方,以防您要复制ibdata1,ib_logfile0和ib_logfile1并重试正常恢复。
如果mysql在以下一种模式下完全启动
- mysqldump除违规表外的所有数据
- 关闭mysql
- 删除/ var / lib / mysql / mysql中除/ var / lib / mysql / mysql外的所有内容
- 启动mysql
- 重新加载mysqldump
注意:请确保备份所有内容!!!
我希望这有帮助 !!!