欢迎光临散文网 会员登陆 & 注册

MySQL 无法启动问题解决

2023-09-02 12:30 作者:寂风也过路  | 我要投稿

序、

本文主要是针对作者实际经历,记录探索并解决问题的过程,用于思路参考,并不代表所有相关问题的解法。

过程与内容:

首先,自然是在任务管理器里面,手动尝试启动MySQL服务,但是结果是启动失败。

MYSQL启动失败

于是,又转而去控制台(Win+R,输入cmd回车)敲命令行的方式,希望可以看到错误信息。

net start mysql

但是很尴尬,居然不显示任何的错误信息。

尝试手动启动MySQL

按照提示,又输入对应的命令。

net helpmsg 3534

居然还是什么错误信息都不报。

按照提示输入命令

那么,只好先一个一个问题排查。

先看端口占用。

netstat -ano|findstr 3306

如果是端口占用,导致MySQL没法使用3306端口(如果你没有通过配置文件去调整的话),那么很简单,杀掉占用端口的进程,再去启动MySQL即可。

只是很可惜,我所遇到的,并不是端口占用产生的问题。

那么说明,应该就是单纯得MySQL出了啥问题,导致无法启动。

检查端口占用情况

于是,用另一个命令看看情况。

mysqld --console

出现报错信息:

报错重点:

[InnoDB] Multiple files found for the same tablespace ID。

(这里其实也有可能是其他报错,那就只能依据报错信息去寻求对应的解决办法了!)

解释:

关于什么是tablespace(表空间),可以看官网文档:https://dev.mysql.com/doc/refman/8.0/en/innodb-tablespace.html

官网有提及该问题的地方(和我所遇到的问题的产生正好一样,也是因为移动数据文件导致):

https://dev.mysql.com/doc/refman/8.0/en/innodb-moving-data-files-offline.html

注:不过我也有看到别人是没做任何操作,像是MySQL自身出了问题导致这个报错。

解决办法:

我比较简单粗暴,就是直接把外部迁移进来的idb文件直接删除了,然后就能正常启动了,毕竟原因就是多个idb文件对应的tablespace ID一样,只要把重复的去掉,只保留重要的那个,就好了。

不过也要注意:如果数据很重要,为了避免删错,建议先备份一下再操作。我也有注意到网上一些教程更简单粗暴,即直接删除整个data文件夹,然后重新初始化MySQL,或者直接重装MySQL,我觉得就有点没必要。


MySQL 无法启动问题解决的评论 (共 条)

分享到微博请遵守国家法律