SQL Server 2019安装错误0x80004005 服务没有及时响应启动或控制请求详细解决方法

article/2025/9/3 13:06:55

借三年半以来第一次彻底重装系统的契机,时隔很久写一篇软件安装文章。SQL Server 在我看来是 Windows 系统最难安装的软件,几乎没有之一。此前的系统是通过一次非彻底的重装系统成功安装了 SQL Server 2019,然而这次在系统完全纯净的情况下却出现了经典错误之:

安装 SQL Server 数据库引擎服务实例功能 时出错
服务没有及时响应启动或控制请求。
错误代码: 0x80004005

英文错误名称为:The service did not respond to the start or control request in a timely fashion 

首先,对待 SQL Server 应取的只有两种方式:要么通过其安装包安装软件或组件功能,要么通过控制面板使用其标准程序卸载(或更改) SQL Server,要么重装系统;否则几乎不可能仅仅通过清理 error-free 地安装和使用 SQL Server,参考前作:

SQL Server 2014完全卸载与SQL Server 2019安装全记录_Ayka的博客-CSDN博客_彻底删除sqlserver2019在服务中停止所有SQL Server相关服务。打开Visual Studio Installer,取消勾选SQL Server Express 2016 LocalDB、SQL ADAL运行时、SQL Server Data Tools、SQL Server ODBC Driver、SQL Server 命令行实用工具、SQL Server 支持的数据源、SQL Server 的 CLR 数据...https://blog.csdn.net/yihuajack/article/details/105316288第二,本文的前提也同样是【系统是清洁的】,任何会安装 SQL Server LocalDB 的其他软件(例如 Visual Studio 的主要组件)都很有可能影响 SQL Server 的安装,因此 SQL Server 的全新安装应放在这些软件之前,如果系统中有先前残留的 SQL Server(Express 或 LocalDB)的安装内容(文件、服务、注册表等),不保证本文的解决方法有效。此外,避免在 SQL Server 的安装错误未解决的情况下安装 SSMS(SQL Server Management Studio),虽然本次安装过程中未出现问题,但网上其他经验有涉及 SSMS 影响 SQL Server 成功安装的可能性。

第三,再次提示:当遇到该问题时,切勿试图以非标准方式(控制面板->卸载程序->Microsoft SQL Server 2019 (64 位)->卸载/更改(U))进行 SQL Server 安装内容(文件、服务、注册表等)进行删除等操作,而且不要通过控制面板->卸载程序卸载或更改其他 SQL Server 相关组件(Microsoft SQL Server 2019 Setup (English)、Microsoft SQL Server 2019 T-SQL 语言服务等),而且在以标准方式卸载 SQL Server 时不要将 SQL Server 的共享功能(客户端工具 SDK、客户端工具连接、SQL 客户端连接 SDK 等)卸载,而应只卸载实例(的所有功能或仅仅安装失败的功能)。

第四,参考前作及本次对 Cannot install SQL Server 2019 - Microsoft Q&A、Error installing SQL Server 2019 : the service did not respond to the start or control request in a timely fashion - Microsoft Q&A 等文章的试错,在安装失败的情况下试图通过 SQL Server 2019 配置管理器做出任何修改都是无效的,将 D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\Templates 下的 master.mdf 和 mastlog.ldf 替换掉 D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA 中的两个对应文件也是无效的。

第五,参考 Getting Error Installing SQL Server 2019 in Windows 11 - Stack Overflow 及 SQL Server 2019: Hardware & software requirements - SQL Server | Microsoft Docs,截止目前,SQL Server 2019 Enterprise 是不支持 Windows 11 的各版本的,我本次安装的正是 SQL Server 2019 Developer 版本,我的系统是 Windows 11 专业版。

第六,参考 Cannot install Sql Server 2019 on Windows Server 2022 - Database Administrators Stack Exchange,通过命令提示符执行

fsutil fsinfo sectorinfo C:

依次检查各磁盘,确认安装磁盘的 PhysicalBytesPerSectorForAtomicity 值不大于 4096。我的 SSD 磁盘该项的值均为 512。

经过多次试错,倒数第二次前做出了以下改变:

  1. 在控制面板->卸载程序->启用或关闭 Windows 功能中启用 Internet Information Services 的全部功能、Internet Information Services 可承载的 Web 核心;通过 Download Internet Information Services (IIS) 10.0 Express from Official Microsoft Download Center 安装 IIS 10.0 Express。
  2. 搜索栏搜索打开本地安全策略,安全设置->本地策略->用户权限分配->备份文件和目录->属性->本地安全设置->添加用户或组(U)...添加了当前用户;允许本地登录添加了 NT SERVICE\MSSQLFDLauncher、NT SERVICE\MSSQLSERVER、NT SERVICE\MSSQLServerOLAPService(对应的是 Analysis Services)、NT SERVICE\SQLSERVERAGENT、NT SERVICE\SQLTELEMETRY、NT SERVICE\SSASTELEMETRY(这是通过对比“作为服务登录”添加的)。第一次安装时设置 SQL Server 数据库引擎服务执行卷维护特权,第二次未设置,但“执行卷维护任务”的属性->本地安全设置中仍有 NT SERVICE\MSSQLSERVER,这启示着每一项策略中的本地安全设置即使卸载重装了 SQL Server 也不会改变。事实上,卸载后相关对象会变为“S-1-5-80”开头的名字,而重装后相关对象会恢复其本来的名字。
  3. 右键 Windows 开始菜单徽标->计算机管理->本地用户和组->组->Administrators->属性或添加到组(A)...->常规->成员(M):->添加(D)...添加 NT SERVICE\MSSQLSERVER。倒数第二次试错还添加了 NT SERVICE\MSSQLServerOLAPService,确认该对象对于 Analysis Services 的成功安装是不可缺少的。

以上三条的重要/优先程度是 3>2>1。倒数第三次试错成功安装了 Data Quality Services、全文和语义提取搜索、数据库引擎服务和 SQL Server 复制,但 Analysis Services 仍然报了相同的错误,倒数第二次试错已经成功安装全部选定实例组件。最后一次试错确认了拥有管理员权限的非 Administrators 同样可以作为 SQL Server 管理员和 Analysis Services 管理员(本机上有本地账户 Administrator 和拥有管理员权限的 Microsoft 账户),为了保险起见避免 Windows 更新等其他问题,所以最后一次安装时同时添加了两个账户作为管理员,没有错误。

总结而言,解决该错误的具体操作方法是:

  1. 当安装程序至少进行到第二次错误窗口弹出时(即本文的第一张截图处),就可以看到本地安全策略中“作为服务登录”策略已经添加了 SQL Server 相关对象(卸载 SQL Server 后是无法添加的)。此时就可以在本地安全策略中的“允许本地登录”策略和组->Administrators 中添加 SQL Server 相关对象。添加的具体方式是:进入用户权限分配页面,找到“允许本地登录”:

    参考“作为服务登录”的本地安全设置(倒数第三次试错前):

    或(倒数第三次试错时):

    将“允许本地登录”的本地安全设置更改为:

    ”添加用户或组(U)...弹出窗口,输入对象名称来选择(示例)(E):,以 NT SERVICE\MSSQLSERVER 为例,输入 NT Service\MSSQLServer(大小写不敏感),然后点击“检查名称(C)”:

    如果只有一个名称匹配对象,则文本框中直接变成带下划线的名称,直接确定即可;如果有多个名称匹配对象,选择匹配名称确定,再确定即可:
  2. 以同样的方式修改组->Administrators 成员添加如下:
  3. 添加后重启计算机,然后卸载 SQL Server 的 MSSQLSERVER 实例。
  4. 卸载后重启计算机,然后重新启动 SQL Server 安装程序,在功能选择页面可以看到之前安装失败的实例功能是可选的(没有变灰,如果不卸载直接启动安装程序选项会变成灰色无法选定,而先前安装成功的共享功能的选项的灰色锁定的):

    虽然安装程序和卸载程序并不要求重启计算机,但是相关计算机管理设置都是需要重启才能生效的,这一点通过试错确认。
  5. 服务器配置页面务必保持默认设置,不要试图更改账户名:

    在随后的数据库引擎配置页面的服务器配置->身份验证模式使用 Windows 身份验证模式( W) 即可。指定 SQL Server 管理员可以同时添加 Administrator 账户和其他拥有管理员权限的账户,Analysis Services 配置->服务器配置同样如此:
  6. 其他设置保持默认,继续安装过程,即可成功安装。 


http://chatgpt.dhexx.cn/article/5qkRc4a7.shtml

相关文章

安装SQL server出现“服务没有及时响应启动或控制请求”

安装SQL server出现“服务没有及时响应启动或控制请求” 环境说明解决方法补充内容安装下载地址删除数据库实例安装时Windows防火墙警告混合身份验证模式 捣鼓了一下午才把SQL server 安装了,花了最多时间的就是中途在安装过程中出现的“服务没有及时响应启动或控制…

错误1053:服务没有及时响应启动或控制请求

在做SCCM2012实验的时候,遇到SQL的报错“错误1053:服务没有及时响应启动或控制请求:”,如下图, 这种问题通常是由于不正确的超时设置导致的,请看如下解决方案, 单击开始,单击运行&am…

笛卡尔积产生的原因

首先说下结论:链接查询,如果on条件是非唯一字段,会出现笛卡尔积(局部笛卡尔积);如果on条件是表的唯一字段,则不会出现笛卡尔积。 测试大法: 首先构建两张表,一张用户表(5条数据&…

oracle笛卡尔积

笛卡尔积 定义:多张表相乘,简单的说就是两个集合相乘的积。(列数相加,行数相乘) 先建了两张表,课程表: 信息表: 1.内连接 inner join on 内连接:笛卡尔积中,…

Mysql之笛卡尔积

首先,简单解释一下笛卡尔积。 现在,我们有两个集合A和B。 例如,A{a,b}, B{0,1,2},则 AB{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)} BA{(0, a), (0, b), (1, a), (1, b), (2, a), (2, b)}以上AB和BA的结果就可以叫做两个集…

笛卡尔积现象

笛卡尔积现象:当进行多张表联合查询的时候,在没有任何条件进行限制情况下,最终查询结果条数是多张表记录条数的乘积! 1、建表 create table student (sid int(15) not null auto_increment comment 学号,sname varchar(30) not …

nginx实现对css,js文件缓存

网页访问缓慢,响应时间长,想要优化网页访问速度,可以了解一下nginx缓存 首先我们先看一下,没设置之前的效果 总计5s才加载出全部页面。下面是优化后的效果,快了3s,这速度差的有点多。 我们在nginx实现对静…

maven仓库清理缓存文件(dos工具)

目录 1.背景 2.解决方案 3.脚本文件 4.运行效果 5.脚本文件下载 1.背景 使用过maven的人都应该知道,maven下载jar包时,有时由于网络问题,会造成文本未下载完毕,残留.lastUpdated文件,下次使用pom时,由于…

文件的随机读写及文件缓冲区

目录 一. 文件的随机读写 二.文件缓冲区 进度条 一. 文件的随机读写 我们在使用完文件指针的时候,指针指向的是数据的末尾,那么如果要更改这个指针的位置,我们就要了解这几个函数:fseek(根据文件指针的位置和偏移量来定位文件指针),ftell(…

SpringBoot处理静态文件缓存机制详解

前言 紧接上文SpringBoot处理静态文件源码分析,分析下其中处理静态文件时的缓存机制 http协议 http协议有一条规则: 当response header中携带Last-Modified时,当再次发起一个相同请求时会把Last-Modified的值放到request header的If-Modi…

apache设置html缓存,宝塔面板apache配置静态文件缓存

将网站静态资源内容,如jpg,gif,png,js,css文件,页面打开时自动缓存到本地,而不是每次都去从服务器请求资源,设置一定的缓存时间,这样做可以减轻服务器的带宽压力,同时使网页打开速度加快,提高用户体检。 宝塔面板如何配置静态文件缓存呢?下面我们一起来操作 加载mod_ex…

linux vi 缓存文件,Vim中的几种文件备份方法总结

一、Vim 的交换文件 .filename.swp 默认交换文件在打开文件的时候就会产生交换文件,正常退出的时候才会删除交换文件(断电,CtrlZ强制退出就不会删除),内容大致是这个样子。 通过在 Vim 配置文件设置 set noswapfile 来关闭交换文件。 二、 Vi…

CMake中set/unset的使用

CMake中的set命令用于将普通、缓存或环境变量(normal, cache, or environment variable)设置为给定值&#xff0c;其格式如下&#xff1a;指定<value>...占位符(placeholder)的此命令的签名需要零个或多个参数。多个参数将作为分号分割的list连接&#xff0c;以形成要设置…

Nginx缓存静态文件

nginx的一大功能就是完成静态资源的分离部署&#xff0c;减轻后端服务器的压力&#xff0c;如果给这些静态资源再加一级nginx的缓存&#xff0c;可以进一步提升访问效率。 第一步&#xff1a;添加nginx.conf的http级别的缓存配置 ##cache##proxy_connect_timeout 500;#跟后端服…

第一个c语言简单小程序

还有很多不会的地方&#xff0c;以后还要好好学习才行

C语言小程序实现电脑关机

一、需求分析 1.电脑在2分钟后关机&#xff1b; 2.输入 我最棒 则取消电脑关机 3.输入错误时&#xff0c;可以在2分钟内重复输入 二、代码 #include<stdio.h> #include<stdlib.h> #include<string.h> int main() {char arr[10] {0};system("shutd…

【C/C++ 经典小程序(一)】

【1】九九乘法表 输出9*9口诀。共9行9列&#xff0c;i控制行&#xff0c;j控制列。 #include <stdio.h> void main() {int i,j,result;for (i1;i<10;i){ for(j1;j<i;j){resulti*j;printf("%d*%d%-3d",i,j,result);/*-3d表示左对齐&#xff0c;占3位*/}pr…

c语言编写简单实用的小程序,C语言编写一个小程序

用C/C编写一个小程序 #include using namespace std; int main() { int b[6]{1,2,2,3,4,5},i,j,k,l,m,n,p,c,d,*a[6]; for(j0;j<6;j) a[j]&b[j]; for(j0;j<6;j) { a[0]&b[j]; for(k0;k<6;k) { if(kj) continue; a[1]&b[k]; for(l0;l<6;l) { if(lj||lk)…

编写C语言的最简单小程序Hello world和函数使用

编写C语言的最简单小程序Hello world 一、示例一 1、编写demo.c程序 #include<stdio.h> int main() {printf("Hello world!");return 0; } 程序的第一行 #include <stdio.h> 是预处理器指令&#xff0c;告诉 C 编译器在实际编译之前要包含 stdio.h 文…

C语言小程序:通讯录(文件版)

在静态版本的通讯录里面实现了通讯录的基本逻辑&#xff0c;但是空间大小是固定的&#xff0c;这样子就会显得很不灵活&#xff0c;会有浪费空间和空间不足的问题&#xff0c;所以在动态版本的通讯里面我们通过动态内存开辟使用malloc函数给通讯录动态的开辟一块空间&#xff0…