1. 现象描述
在安装MSSQL时,出现了闪退的现象,无法完成安装。具体表现为:
安装程序启动后,出现“正在安装”界面,不久后突然关闭。
重复启动安装程序后,无法继续安装,提示已经存在一份相同的安装记录。
2. 排查过程
出现上述情况后,我们需要排查找出问题的根本原因,才能有针对性地解决。下面是我们排查的过程:
2.1 安装程序日志查看
在安装过程中,MSSQL会产生一些日志文件,记录安装的各种操作和错误信息。我们可以通过查看这些日志文件,来了解安装的具体情况和产生错误的原因。以下是安装程序的日志路径:
C:\Program Files\Microsoft SQL Server\150\Setup Bootstrap\Log\20220704_141604
我们找到日志文件后,打开最新的日志文件,可以看到日志中有很多详细的信息,包括安装过程中出现的错误和措施等。但是,在这个情况下,我们却没有找到错误信息,无法得出具体的解决方法。
2.2 安装记录清理
在第一次运行安装程序时,程序会在电脑上生成一个唯一的GUID,它会作为安装记录的标识符保存在系统中。安装程序会检查系统中是否存在相同的GUID,如果存在,则认为已经有一份相同的安装记录,不能继续安装。但是,在异常退出安装程序的情况下,这个GUID并没有正确地从系统中删除,所以会被安装程序误认为已经安装过MSSQL。
为了解决这个问题,我们需要清理系统中残留的安装记录。具体步骤如下:
运行“cmd”命令行。
输入以下命令,以列出安装记录:
wmic product get name,version
3. 找到产生MSSQL 闪退的那个安装记录,并记录ProductCode的值,如下图所示:
4. 根据ProductCode的值,运行以下命令,以删除该安装记录:
msiexec /x {ProductCode} /qn
5. 重新运行安装程序。
3. 原因分析
经过排查,我们找到了导致MSSQL安装闪退的原因,是WebDeploy的控件问题。具体原因是:
MSSQL安装程序需要下载Web Deploy 3.5的安装程序,但是,由于某些原因(如网络不稳定等),下载的安装程序不完整。这导致安装程序在运行期间无法正常加载WebDeploy的控件,从而导致MSSQL安装闪退。
4. 解决方案
4.1 下载Web Deploy 3.5
由于MSSQL安装程序无法正常下载Web Deploy 3.5,我们可以手动下载Web Deploy 3.5,并手动安装到系统中,从而解决控件加载问题。以下是下载Web Deploy 3.5的详细步骤:
从Microsoft官网下载Web Deploy 3.5安装程序。
双击安装程序,按照向导完成安装。
重新运行MSSQL的安装程序,检查问题是否已经解决。
4.2 安装程序命令行参数
在安装MSSQL时,可以通过命令行参数,来指定安装程序的参数和路径。如果你遇到闪退的问题,可以尝试使用命令行参数来安装MSSQL,并检查是否可以成功安装。以下是常用的安装程序命令行参数:
IACCEPTSQLSERVERLICENSETERMS:接受许可协议。
ROLE:指定在安装MSSQL Server时安装的角色。常用角色包括:AllFeatures_WithDefaults、DatabaseEngine、Replication、FullText、AnalysisServices、ReportingServices、ManagementTools等。
INSTANCENAME:指定实例名称。
AGTSVCACCOUNT:指定SQL Server代理运行的账户名。
AGTSVCPASSWORD:指定SQL Server代理运行的账户密码。
SQLSVCACCOUNT:指定SQL Server数据库引擎运行的账户名。
SQLSVCPASSWORD:指定SQL Server数据库引擎运行的账户密码。
以下是使用命令行安装MSSQL Server的示例:
setup.exe /q /ACTION=install /FEATURES=SQLEngine /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /SQLSVCPASSWORD="" /IACCEPTSQLSERVERLICENSETERMS
通过使用命令行参数,我们可以在遭遇闪退问题时,以更加灵活的方式安装MSSQL Server。
5. 总结
本文详细介绍了MSSQL安装遭遇闪退的问题,并从排查、原因分析和解决方案三个方面对此问题进行了分析。通过本文的介绍,希望读者可以掌握MSSQL安装中可能遇到的问题,并能够针对性地解决这些问题。
总之,MSSQL Server是一款非常强大的数据库管理工具,掌握MSSQL Server的安装和配置技能,对于从事IT行业的朋友来说是具有非常重要的意义的。