MySQL启动后停止,某些服务在未由其他服务或程序使用时将自动停止(解决方法)
问题描述
启动mysql服务弹窗提示:
本地计算机上的mysql服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。如下图示:
根据此提示从网上搜索基本都是说删除data目录后重新启动服务即可解决。
但此种方式会丢失数据,所以我们不采取,继续排查。
在data目录下*.err日志文件中我们发现报错信息:
2023-03-30T10:20:05.016000Z 0 [ERROR] InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 79308260 and the end 79308447.
2023-03-30T10:20:05.016000Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2023-03-30T10:20:05.343600Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2023-03-30T10:20:05.343600Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2023-03-30T10:20:05.343600Z 0 [ERROR] Failed to initialize builtin plugins.
2023-03-30T10:20:05.343600Z 0 [ERROR] Aborting
报错分析:
从报错上,我们发现事务日志有断档,所以我们可以把原来的事务日志ib_logfile0和ib_logfile1重命名备份,然后再重启mysql服务。
解决办法
1、备份data目录下事务日志文件
ib_logfile0修改为ib_logfile0.bak
ib_logfile1修改为ib_logfile1.bak
2、重启mysql服务
在计算机--管理--服务中启动mysql服务。或使用管理员权限打开cmd窗口,执行net start mysql命令启动mysql服务。
C:\Windows\system32>net start mysql
mysql 服务正在启动 .
mysql 服务已经启动成功。
C:\Windows\system32>
(完)