1.写在前面(具体报错)信息

# MySQL Version :8.0.27 MySQL Community Server - GPL
#有很多类似这样的报错,我这里截取了完整的一段

[root@zbxserver1 ~]# tailf -100 /var/log/mysqld.log
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
2022-04-22T14:22:22.913109Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.27) starting as process 111450
2022-04-22T14:22:22.922078Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-04-22T14:22:23.202346Z 1 [ERROR] [MY-012519] [InnoDB] ############### CORRUPT LOG RECORD FOUND ###############len 170; hex 085181f4003800001a9905265181f4000300038008800480062be2026f1f02fbee80cc00380501fbee80cc006a0104fbee80cc00840104fbee80cc00881804fbee80cc008c00880005002600001d300119fbef81b200001d300102fbef81b20028afd402fbef81b2002aafd402fbef81b22eebafd401fbef81b22eee011f94fbef81b2001b5c00001f0000001d0d01c1000001b2267408000000000000000300a9fbfe84b60009000180; asc  Q   8     &Q            +  o       8       j                             &   0         0       (        *       .        .          \              &t                    ;
2022-04-22T14:22:23.202885Z 1 [ERROR] [MY-013183] [InnoDB] Assertion failure: log0recv.cc:4008 thread 139666151679744
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
14:22:23 UTC - mysqld got signal 6 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
Thread pointer: 0x6d1bae0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 7f068f5b9bf0 thread_stack 0x100000
/usr/sbin/mysqld(my_print_stacktrace(unsigned char const*, unsigned long)+0x3d) [0x1fc33ad]
/usr/sbin/mysqld(handle_fatal_signal+0x30b) [0xee902b]
/lib64/libpthread.so.0(+0xf630) [0x7f069e628630]
/lib64/libc.so.6(gsignal+0x37) [0x7f069cb72387]
/lib64/libc.so.6(abort+0x148) [0x7f069cb73a78]
/usr/sbin/mysqld() [0xc3378c]
/usr/sbin/mysqld(recv_recovery_from_checkpoint_start(log_t&, unsigned long)+0xe88) [0x215a838]
/usr/sbin/mysqld(srv_start(bool)+0x1bd6) [0x220e356]
/usr/sbin/mysqld() [0x20a45bd]
/usr/sbin/mysqld(dd::bootstrap::DDSE_dict_init(THD*, dict_init_mode_t, unsigned int)+0x8b) [0x1d87ddb]
/usr/sbin/mysqld(dd::upgrade_57::do_pre_checks_and_initialize_dd(THD*)+0x1a0) [0x1f969c0]
/usr/sbin/mysqld() [0xfab2d6]
/usr/sbin/mysqld() [0x248d620]
/lib64/libpthread.so.0(+0x7ea5) [0x7f069e620ea5]
/lib64/libc.so.6(clone+0x6d) [0x7f069cc3ab0d]Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0): Connection ID (thread ID): 1
Status: NOT_KILLED

报错截图

2.查找资料

直接搜索报错,找了老半天也没找到,心情相当烦躁,真是怕什么来什么。思索片刻后,打算换种思路来解决这个问题(后来也证明了我是对的)。于是,我把目光又移回到了报错信息上。发现了这么一条一段话。

InnoDB: about forcing recovery.
14:22:24 UTC - mysqld got signal 6 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.

大致意思就是说可以跳过错误,强势启动MySQL。
查阅各方资料找到这个参数

#忽略检查,有6个级别
innodb_force_recovery=6
1 (SRV_FORCE_IGNORE_CORRUPT): 忽略检查到的 corrupt 页。尽管检测到了损坏的 page 仍强制服务运行。一般设置为该值即可,然后 dump 出库表进行重建。
2 (SRV_FORCE_NO_BACKGROUND): 阻止主线程的运行,如主线程需要执行 full purge 操作,会导致 crash。 阻止 master thread 和任何 purge thread 运行。若 crash 发生在 purge 环节则使用该值。
3 (SRV_FORCE_NO_TRX_UNDO): 不执行事务回滚操作。
4 (SRV_FORCE_NO_IBUF_MERGE): 不执行插入缓冲的合并操作。如果可能导致崩溃则不要做这些操作。不要进行统计操作。该值可能永久损坏数据文件。若使用了该值,则将来要删除和重建辅助索引。
5 (SRV_FORCE_NO_UNDO_LOG_SCAN): 不查看重做日志,InnoDB 存储引擎会将未提交的事务视为已提交。此时 InnoDB 甚至把未完成的事务按照提交处理。该值可能永久性的损坏数据文件。
6 (SRV_FORCE_NO_LOG_REDO): 不执行前滚的操作。恢复时不做 redo log roll-forward。使数据库页处于废止状态,继而可能引起 B 树或者其他数据库结构更多的损坏。

3.修改配置文件

#建议是从1开始逐级往上加

[root@zbxserver1 ~]# vim /etc/my.cnf
[mysqld]
innodb_force_recovery=6

4.重启mysql

#然后数据库就起来了

[root@zbxserver1 ~]# systemctl restart mysqld

5.备份业务库

#数据库虽然起来了,但是现在是没办法用的,无法新增数据。
#不过数据库起来的就好办,需要准备一个新库,将重要的业务库全备出来,然后在恢复到新库。

mysql> create database test001;
ERROR 1836 (HY000): Running in read-only mode

备份业务库,我这上面跑zabbix server的数据库,所以只业务库就是zabbix这个库。

[root@zbxserver1 ~]# mysqldump -uroot -p -B zabbix -R --triggers --single-transaction --source-data=2 > /tmp/zabbix_data.sql
Enter password:  #输入密码

6.导入新库

#提前准备好新库,最好是同版本的mysql,再不济也要能支持Innodb存储引擎的(mysql5.6及以上)。

[root@zbxserver2 ~]# mysql -uroot -p < /tmp/zabbix_data.sql

7.把业务割接到新库

8.写在最后

作为一名数据库小白,总觉得有更好的解决办法,所有记录一下,记录一下
希望大佬指点

[InnoDB] #CORRUPT LOG RECORD FOUND#[MySQL InnoDB表空损坏,数据库无法启动]#相关推荐

  1. innodb 集群_部署MySQL InnoDB集群以实现高可用性

    innodb 集群 In this article, I am going to explain how we can deploy the MySQL InnoDB cluster. InnoDB ...

  2. oracle access表丢失,oracle 11.1.0.7-版本也会出现access$表丢失导致数据库无法启动

    oracle 11.1.0.7-版本也会出现access$表丢失导致数据库无法启动 发布时间:2017-06-23 20:10 来源:互联网 当前栏目:web技术类 下面我们来看看oracle 11. ...

  3. mysql innodb隔离级别_浅析MySQL InnoDB的隔离级别

    本文就将对上面这两个问题进行解答,分析事务的隔离级别以及相关锁机制. 隔离性简介 隔离性主要是指数据库系统提供一定的隔离机制,保证事务在不受外部并发操作影响的"独立"环境执行,意思 ...

  4. mysql涉及表 规范_MySql数据库表设计规范

    建表规约 索引规约 SQL 语句 其他实战建议 选用utf8编码 可以将 MySql 的字符集由 utf8 调整为 utf8mb4.utf8mb4 是 MySql 在 5.5.3 版本之后增加的一个编 ...

  5. mysql 修复表字段_mysql数据库总结一【安装,配置,表操作,字段操作,增删改, 备份-恢复,select查询】...

    服务器端安装 安装服务器端:在终端中输入如下命令,回车后,然后按照提示输入 sudo apt-get install mysql-server 启动服务 sudo service mysql star ...

  6. mysql user表 空_mysql 忘记密码,重置密码,mysql.user表为空的解决办法

    一.用户表有用户,直接修改密码 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) ...

  7. mysql 两表连接删除数据库_Mysql (二)Mysql 数据库表增删改查

    一.表操作 1.[增加] create table DBname.table_name(id int, namevarchar(255))engine=MyISAM charset=gbk; 2.[删 ...

  8. mysql复制表以及复制数据库

    (一)将旧表复制到新表 1.CREATE TABLE新表 SELECT* FROM旧表; 该语句只是复制表结构以及数据,它不会复制与表关联的其他数据库对象,如索引,主键约束,外键约束,触发器等. CR ...

  9. 菜鸟教程mysql创建表_MySQL 创建数据库 | 菜鸟教程

    MySQL 创建数据库 使用 mysqladmin 创建数据库 使用普通用户,你可能需要特定的权限来创建或者删除 MySQL 数据库. 所以我们这边使用root用户登录,root用户拥有最高权限,可以 ...

最新文章

  1. mysql8jdbc连接串_mysql8 JDBC连接注意事项
  2. python 正则表达式 re (.*?)和(.*)的区别(贪婪模式非贪婪模式)惰性匹配
  3. HTML5-Canvas 图形变换+状态保存
  4. mysql 逻辑备份 物理备份_数据库的逻辑备份和物理备份--非RMAN
  5. linux上听FM程序,安装和使用Odio在Linux上收听FM收音机的方法
  6. mysql查询注意_mysql中sql查询使用注意
  7. [安卓] 19、一个蓝牙4.0安卓DEMO
  8. 李佳琦“云逛”进博会 携手央视带货阿富汗松子
  9. 恒大集团:网传《关于召开全国恒大财富投资人大会通知》系伪造
  10. 常见算法之12---求a^n%p
  11. c语言文件中获取单词,从文本文件中读取单个单词并翻译 - C
  12. 最近的收获以及清明节的安排
  13. 【Git】回退 commit 版本详解
  14. win 2003 SP2 (32位X86) 中文版 升级补丁包 下载地址 光盘整合集成方法
  15. RINEX3 版本 Observation codes 介绍
  16. Red Hat Enterprise Linux 7.3
  17. 86张脑图,一口气看完 React,想学React的看过来,React知识图谱汇总
  18. 新版仿微信支付生活缴费小程序源码+UniAPP内核
  19. 学习C++编程的必备软件
  20. python 因果推断_causalinference: 使用Python做因果推断

热门文章

  1. 安卓:点击空白处隐藏软键盘
  2. 小知识系列(3):Hanoi塔(汉诺塔,河内塔)
  3. 什么是GPU,GPU怎么工作的,什么是图形的渲染,渲染怎么完成的。
  4. 海思hi3516dv300 配置uart3
  5. android业余手机开发,赚钱心得
  6. 使用webpack5自己搭建react项目脚手架(手把手教,把手伸过来,好软~呸,好手)
  7. 美国男人欢迎中国的丑女人?------------说说洁
  8. 工程项目管理系统-专注项目数字化管理-工程管理
  9. JavaScript代理模式之四大代理
  10. 树形选择排序(锦标赛排序)