解决MySQL8 ZIP发行版安装服务时报“服务没有响应控制功能”的错误

在Windows系统上安装MySQL8的ZIP发行版时,可能会遇到服务启动失败的问题,提示“服务没有响应控制功能”。经过分析,发现原因是缺少VCRUNTIME140_1.DLL库文件。解决方案是下载并放置该DLL文件到MySQL的bin目录下,然后通过管理员权限启动服务,问题即可解决。此问题可能由于MySQL官方ZIP包未包含该文件导致。
摘要由CSDN通过智能技术生成

解决MySQL8 ZIP发行版安装服务时报“服务没有响应控制功能”的错误

  • 2020.9.30日
  • 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。

Windows系统安装MySQL 8,比如最新的8.0.21版,通常有两种方法,一种是下载MSI发行版直接使用图形化安装界面一步步完成安装,这种方法很难出错;另一种是下载免安装的ZIP发行版(比如mysql-8.0.21-winx64.zip)。

在安装MySQL 8的ZIP发行版时,安装服务“mysqld.exe --install mysql8”不会出错(我把服务命名为mysql8),但是在启动服务时,就会出现如题所示的错误:

# 如果是Windows 10系统
D:\mysql> sc start mysql8
服务没有响应控制功能。
# 如果是Windows 7等系统
D:\mysql> sc start mysql8
The service is not responding to the control function.
# 说明,用“net start mysql8”命令等效

不管是win7还是win10,都无法启动已安装好的MySQL服务。我查遍了全网(国内、国外),均没有找到正确的解决方案。

分析过程:

  1. 直接运行mysqld,比如“mysqld.exe --console”,数据库服务器运行正常,客户端也能正常访问;
  2. MySQL的系统服务安装是OK的,只是启动不了;
  3. 此问题不一定能重现,有些Windows主机上没有该问题。

我业余时间进行了大量的分析研究,比对两种安装方式的异同,分析MySQL源码的编译构建部分,最终发现此问题是官方的ZIP发行版自身存在问题,缺少了一个DLL函数库文件“VCRUNTIME140_1.DLL”。如果某些Windows电脑上已经安装了Visual Studio这样的开发环境,此dll库文件就有,不会出现问题,而对于其他Windows用户来说,就会出现此问题。

解决方法:访问https://cn.dll-files.com/vcruntime140_1.dll.html,下载VCRUNTIME140_1.DLL最新的版本:14.26.28804.1,下载后将此文件直接放入MySQL的bin子目录下即可。

然后CMD管理员权限再运行:

D:\databases\mysql8> net start mysql8
mysql8 服务正在启动 .
mysql8 服务已经启动成功。

此问题虽然不大,但确实比较棘手。MySQL官方在打包ZIP发行版时,在bin子目录下加上vcruntime140_1.dll文件再打包就不会有这个问题。
我猜测MySQL官方负责打包发行软件包的电脑主机上有Visual Studio环境,以至于开发人员没能意识到这个问题,哪怕有用户反映也无法重现此问题。
在检索问题时,我发现此问题从MySQL 5.7版开始似乎就有了,只是我长期在Ubuntu环境使用MySQL,未能遇到此问题,最近才发现。

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值