Linux环境MySQL出现无法启动的问题解决 [InnoDB] InnoDB initialization has started.

目录

起因

强制启用恢复模式

备份数据


起因

服务器重启了,然后服务器启动完成之后我发现MySQL程序没有启动,错误信息如下:

复制代码
2025-04-19T12:46:47.648559Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-04-19T12:46:55.913703Z 0 [Warning] [MY-000081] [Server] option 'max_allowed_packet': unsigned value 107374182400 adjusted to 1073741824.
2025-04-19T12:46:55.913790Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2025-04-19T12:46:55.913893Z 0 [System] [MY-010116] [Server] /www/server/mysql/bin/mysqld (mysqld 8.0.24) starting as process 17471
2025-04-19T12:46:56.017284Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.

查看./mysqlbinlog,宝塔的mysqlbinlog日志地址

/www/server/mysql/bin

大概看了binlog日志,发现最后几条的sql并没有问题,然后想起来重启的时候我在导出sql,大概率是因为服务器是突然断点重启,但是此时正在执行sql,造成innodb数据库文件出现错误的原因

强制启用恢复模式

在mysql的配置文件中加入以下内容:

复制代码
innodb_force_recovery = 1

其中参数的含义是:

  • 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)
    • 阻止插入缓冲区合并操作。如果它们会导致崩溃,请不要这样做。不计算表统计信息。此值可能会永久损坏数据文件。使用此值后,请准备好删除并重新创建所有二级索引。将 InnoDB 设置为只读。
  • 5 (SRV_FORCE_NO_UNDO_LOG_SCAN)
    • 启动数据库时不查看撤消日志:InnoDB 甚至将未完成的事务视为已提交。此值可能会永久损坏数据文件。将 InnoDB 设置为只读。
  • 6(SRV_FORCE_NO_LOG_REDO)
    • 不执行与恢复相关的重做日志前滚。此值可能会永久损坏数据文件。使数据库页处于过时状态,这反过来又可能会给 B 树和其他数据库结构带来更多损坏。将 InnoDB 设置为只读。

从1开始逐步往上尝试启动,我是尝试到2启动成功的

备份数据

启动成功后我们在使用dump导出一下数据库的结构和数据/宝塔直接点击备份数据

备份成功之后我们就可以删除原来的数据库了,由于使用的是恢复模式,而且innodb的文件已经损坏了,所以我们可以找到mysql配置文件,找到对应的数据文件,然后使用rm -rf 文件删除掉原有的数据库文件。

确保已备份全部数据!!!!!!!!

复制代码
rm -rf  /www/server/mysql

删除完之后,重新安装数据库,接着把直接备份的数据库重新导入,MySQL就可以正常启动了。

end

人的一生 必须要学会做一件事 而且要做到透彻 才不枉此生...共勉 💪。

相关推荐
黄焖鸡能干四碗1 天前
企业信息化建设总体规划设计方案
大数据·运维·数据库·人工智能·web安全
Zz_waiting.1 天前
利用 MyBatis 操作数据库完善案例
数据库·mybatis·案例demo
Z_z在努力1 天前
【MySQL 高阶】MySQL 架构与存储引擎全面详解
数据库·mysql·架构
全栈工程师修炼指南1 天前
DBA | MySQL 数据库基础查询语句学习实践笔记
数据库·笔记·学习·mysql·dba
zandy10111 天前
衡石HQL深度解析:如何用类SQL语法实现跨源数据的高效联邦查询?
数据库·数据仓库·sql·hql·数据湖仓一体
野犬寒鸦1 天前
今日面试之项目拷打:锁与事务的深度解析
java·服务器·数据库·后端
veminhe1 天前
MySQL 索引失效原理剖析:别让 “加速键” 变成 “绊脚石”
mysql
阿沁QWQ1 天前
使用c语言连接数据库
数据库
奥尔特星云大使1 天前
mysql重置管理员密码
linux·运维·数据库·mysql·centos
Lbwnb丶1 天前
p6spy 打印完整sql
java·数据库·sql