MySQL服务无法启动

1,066 阅读3分钟

关于MySQL8.0无法启动的问题和解决方法:

正常情况是:

image.png

今天使用MySQL时,发现MySQL服务居然启动不了,出现以下情况:

image.png image.png

手动启动服务也不生效

image.png

首先,你需要检查是否用了管理员的身份运行mysql服务(如图一情况)
有时候可能因为权限问题导致MySQL无法成功启动
其次,检查注册表编辑器中对应的MySQL服务
    \HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\eventlog\Application\MySQL
    查看相关path是否为本地MySQL对应的路径,
    如果不是,手动改未本地MySQL路径就好
    比如我的ImagePath是:D:\mysql\mysql-8.0.29-winx64\bin\mysqld mysql
    

image.png

可能因为版本或者电脑配置不同,各参数有些出入,不过没有关系

最后,检查服务中是否不止一个MySQL服务,可能因为电脑安装了多个MySQL导致后台启动时MySQL端口冲突或者服务冲突,从而导致MySQL无法启动

这种情况下,首先我们要知道程序只允许一个MySQL 启动,
如果是端口冲突可以更改MySQL的端口号(my.ini)或者关闭那个占用端口号的程序即可(建议后者)
    进入MySQL安装目录bin的路径下,输入命令 netstat -ano ,找到3306接口的PID值。
    打开[任务管理器],找到对应PID的mysql进程,右击关闭。(点击PID进行PID值排序可方便查找)
如果是服务冲突那么只能舍弃其中一个服务,最好是两个服务都卸载(sc delete mysql)并且在注册表中手动删除,
删除了服务和注册表后需要重启电脑,
重新下载服务(mysqld -install)

image.png

重新启动MySQL服务(net start mysql)或许可以启动成功。

如果没有端口占用,也没有服务冲突,仍然出现MySQL无法启动的问题

解决方法1

找到MySQL的安装目录\bin,删除安装目录下的data文件夹(会丢失MySQL内的数据)
在cmd运行(当然如果没有将MySQL命令添加到环境变量的话,请打开MySQL的bin文件夹,在地址栏输入cmd,回车,可以在此目录下打开cmd):mysqld  --initialize
初始化重新生成新的data文件
重新启动MySQL服务

解决方法2

下载vcruntime140_1.dll的组件放在mysql文件目录下
重新启动MySQL服务

解决方法3

更改登录权限(前提是个人账户有最高权限)
重新启动MySQL服务

image.png

image.png

解决方法4

重装MySQL
1、卸载MySQL   
2、删除安装目录及数据存放目录   
3、在[注册表]全部删除   
4、在c盘查询MySQL,全部删除   
5、重新安装就好了
如果重装MySQL后仍然出现服务无法启动
情况1:MySQL文件没有删除干净,重复重装MySQL的步骤并在MySQL Installer - Community中卸载所有服务再进行重新安装
情况2:可能因为一些盗版软件的原因,系统开启了保护模式并把一些自认为不安全的.dll之类的文件删除,这时候可以下载MySQL Workbench 8.0后重新安装MySQL,再安装‘DirectX4.0’,进行.dll的文件恢复,再重新安装MySQL服务去启动,亲测成功。