jjzjj

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

Ayka 2024-04-05 原文

借三年半以来第一次彻底重装系统的契机,时隔很久写一篇软件安装文章。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&AError 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. 其他设置保持默认,继续安装过程,即可成功安装。 

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

  1. ruby-on-rails - Rails HTML 请求渲染 JSON - 2

    在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这

  2. jquery - 我的 jquery AJAX POST 请求无需发送 Authenticity Token (Rails) - 2

    rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送

  3. 屏幕录制为什么没声音?检查这2项,轻松解决 - 2

    相信很多人在录制视频的时候都会遇到各种各样的问题,比如录制的视频没有声音。屏幕录制为什么没声音?今天小编就和大家分享一下如何录制音画同步视频的具体操作方法。如果你有录制的视频没有声音,你可以试试这个方法。 一、检查是否打开电脑系统声音相信很多小伙伴在录制视频后会发现录制的视频没有声音,屏幕录制为什么没声音?如果当时没有打开音频录制,则录制好的视频是没有声音的。因此,建议在录制前进行检查。屏幕上没有声音,很可能是因为你的电脑系统的声音被禁止了。您只需打开电脑系统的声音,即可录制音频和图画同步视频。操作方法:步骤1:点击电脑屏幕右下侧的“小喇叭”图案,在上方的选项中,选择“声音”。 步骤2:在“声

  4. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  5. 【高数】用拉格朗日中值定理解决极限问题 - 2

    首先回顾一下拉格朗日定理的内容:函数f(x)是在闭区间[a,b]上连续、开区间(a,b)上可导的函数,那么至少存在一个,使得:通过这个表达式我们可以知道,f(x)是函数的主体,a和b可以看作是主体函数f(x)中所取的两个值。那么可以有,  也就意味着我们可以用来替换 这种替换可以用在求某些多项式差的极限中。方法: 外层函数f(x)是一致的,并且h(x)和g(x)是等价无穷小。此时,利用拉格朗日定理,将原式替换为 ,再进行求解,往往会省去复合函数求极限的很多麻烦。使用要注意:1.要先找到主体函数f(x),即外层函数必须相同。2.f(x)找到后,复合部分是等价无穷小。3.要满足作差的形式。如果是加

  6. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  7. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  8. ruby - HTTP 请求中的用户代理,Ruby - 2

    我是Ruby的新手。我试过查看在线文档,但没有找到任何有效的方法。我想在以下HTTP请求botget_response()和get()中包含一个用户代理。有人可以指出我正确的方向吗?#PreliminarycheckthatProggitisupcheck=Net::HTTP.get_response(URI.parse(proggit_url))ifcheck.code!="200"puts"ErrorcontactingProggit"returnend#Attempttogetthejsonresponse=Net::HTTP.get(URI.parse(proggit_url)

  9. ruby-on-rails - 获取并发布相同匹配项的请求 - 2

    在我的路线文件中我有:match'graphs/(:id(/:action))'=>'graphs#(:action)'如果是GET请求(工作)或POST请求(不工作),我想匹配它我知道我可以使用以下方法在资源中声明POST请求:post'/'=>:show,:on=>:member但是我怎样才能为比赛做到这一点呢?谢谢。 最佳答案 如果你同时想要POST和GETmatch'graphs/(:id(/:action))'=>'graphs#(:action)',:via=>[:get,:post]编辑默认值可以设置如下match'g

  10. ruby - 如何更快地解决 project euler #21? - 2

    原始问题Letd(n)bedefinedasthesumofproperdivisorsofn(numberslessthannwhichdivideevenlyinton).Ifd(a)=bandd(b)=a,whereab,thenaandbareanamicablepairandeachofaandbarecalledamicablenumbers.Forexample,theproperdivisorsof220are1,2,4,5,10,11,20,22,44,55and110;therefored(220)=284.Theproperdivisorsof284are1,2,

随机推荐