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

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

相关推荐
.生产的驴3 分钟前
Docker 部署Nexus仓库 搭建Maven私服仓库 公司内部仓库
java·运维·数据库·spring·docker·容器·maven
知行025 分钟前
MySQL的Docker版本,部署在ubantu系统
数据库·mysql·docker
朝新_16 分钟前
【MySQL】第三弹——表的CRUD进阶(一)数据库约束
数据库·mysql
qq_14182697321 小时前
python通过curl访问deepseek的API调用案例
java·数据库·python
可喜~可乐1 小时前
C# SQLite高级功能示例
数据库·sql·sqlite·c#
cooldream20092 小时前
深入理解主从数据库架构与主从复制
数据库·oracle·数据库架构·系统架构师
Eternity......2 小时前
spark MySQL数据库配置
数据库·mysql·spark
Freedom℡2 小时前
使用scp命令拷贝hadoop100中文件到其他虚拟机中
数据库·hadoop·spark
Qdgr_2 小时前
电厂除灰系统优化:时序数据库如何降低粉尘排放
数据库·时序数据库
慧一居士2 小时前
Memcached 服务搭建和集成使用的详细步骤示例
数据库·架构·nosql·memcached