yokila
yokila
Published on 2023-09-02 / 5 Visits
0
0

Windows MySQL无法启动问题解决

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

过程与内容

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

MYSQL启动失败

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

执行命令:net start mysql

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

按照提示,又输入对应的命令:net helpmsg 3534

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

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

先看端口占用,执行命令:netstat -ano|findstr 3306

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

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

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

于是,用另一个命令看看情况,执行命令:mysqld --console

出现报错信息:

报错重点:

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

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

解释:

关于什么是 tablespace(表空间) ,可以看官网文档:Tablespaces

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

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

解决办法

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

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



Comment