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

Posted chszs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决MySQL8 ZIP发行版安装服务时报“服务没有响应控制功能”的错误相关的知识,希望对你有一定的参考价值。

解决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,未能遇到此问题,最近才发现。

以上是关于解决MySQL8 ZIP发行版安装服务时报“服务没有响应控制功能”的错误的主要内容,如果未能解决你的问题,请参考以下文章

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

idea运行项目时报Error:java无效的源发行版:1.8

MySQL8.0.30(zip版)windows安装

windows10安装mysql(解压版)初始化报错

运行tomcat时报错 Error: java:无效的源发行版: 12

配置:错误:请重新安装 libzip 发行版