SQL Server 2017命名实例安装失败,报错:Object reference not set to an instance of an object
我之前帮不少用户排查过SQL Server 2017在Windows 10上安装时出现的这个空引用错误,结合你描述的场景——命名实例、已选择Database Engine Services、管理员运行、混合模式验证,给你几个针对性的解决步骤:
检查安装介质完整性
这个空引用错误很多时候是安装包损坏导致的。如果你用的是ISO镜像,先卸载挂载的镜像,重新挂载后再运行安装程序;如果是下载的安装文件,建议从官方渠道重新下载,并校验文件的SHA256哈希值确保没有损坏。清理之前的安装残留
如果之前有过失败的安装记录,残留的文件/注册表项可能干扰新安装:- 删除
C:\Program Files\Microsoft SQL Server\下对应你要安装的命名实例的文件夹(如果存在) - 删除
C:\ProgramData\Microsoft\SQL Server\下的相关临时文件和实例配置文件夹 - 打开注册表编辑器(
regedit.exe),备份以下路径后,删除对应实例的项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL ServerHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server
注意:修改注册表前一定要备份,避免误操作导致系统问题。
- 删除
调整安装程序的兼容性设置
右键点击SQL Server安装程序(setup.exe),选择「属性」→「兼容性」:- 勾选「以兼容模式运行这个程序」,选择「Windows 8」
- 勾选「以管理员身份运行此程序」
点击「确定」后重新启动安装向导。
确保系统组件满足要求
SQL Server 2017依赖.NET Framework 4.6.2及以上版本,同时需要Windows 10的最新累积更新:- 打开「设置」→「更新和安全」,安装所有可用的Windows更新
- 验证.NET Framework版本,若低于4.6.2则下载安装对应的版本
跳过产品更新再尝试安装
在安装向导的「产品更新」步骤,选择「跳过更新」,避免更新组件与安装程序发生冲突,完成基础安装后再手动更新SQL Server。使用命令行执行安装(绕过GUI问题)
如果GUI安装一直报错,试试用命令行安装,右键以管理员身份打开命令提示符,切换到安装程序所在目录,执行以下命令(替换参数值为你的配置):setup.exe /q /ACTION=Install /FEATURES=SQLEngine /INSTANCENAME=YourInstanceName /SQLSYSADMINACCOUNTS="BUILTIN\Administrators" /SECURITYMODE=SQL /SAPWD="YourStrongPassword" /IAcceptSQLServerLicenseTerms参数说明:
/FEATURES=SQLEngine:对应你选择的Database Engine Services功能/INSTANCENAME=YourInstanceName:替换为你的命名实例名称/SECURITYMODE=SQL:启用混合模式验证/SAPWD="YourStrongPassword":设置sa账户的密码,需符合强密码要求
如果以上方法都无效,你可以查看安装日志定位具体问题:日志默认路径在C:\Program Files\Microsoft SQL Server\140\Setup Bootstrap\Log\下的最新日期文件夹中,打开Detail.txt文件,搜索「Object reference not set」附近的日志内容,能找到更精准的错误原因。
内容的提问来源于stack exchange,提问作者user9241790

