☰
32位Win7安装SQL Server 2012:预检、配置与验证避坑指南
2026/10/27 2:44:36 网站建设 项目流程

简介:面向准备在 Windows 7 等 32 位环境部署 SQL Server 2012 的数据库初学者与运维人员,这份安装图解教程围绕安装环境确认、安装包选择、系统配置检查、安装中心功能说明及非集群环境全新安装展开,重点呈现产品密钥、许可条款、功能选择、实例配置、服务器配置、数据库引擎与 Analysis Services 等关键界面,并附常见安装规则提示与报错规避思路。资源为 1 个 PDF 文件,约 786KB,篇幅精简,适合按章节对照实际安装界面查阅。已有 2248 人学习,可作为 SQL Server 2012 入门部署前的流程预演和节点核对材料,帮助读者提前理解各配置项含义、减少因环境或选项不匹配造成的反复尝试。

1. 环境先摆清:32 位 Win7 上装 SQL Server 2012 的三道门槛

SQL Server 2012 安装最容易出问题的地方,往往不在数据库本身,而在要装它的那台机器。我印象最深的一次,是在一台 Windows 7 SP1 32 位、双核 2.1GHz、内存 2.93GB 的老机器上装 SQL Server 2012:安装向导停在「正在安装数据库引擎」这一步快四十分钟,风扇一直响,进度条不动,当时还以为是安装包坏了,后来才发现是 32 位地址空间和磁盘余量一起把机器拖住了。这套环境在老项目、教学机房、内网小系统里太常见了,装不好就是装了三天、连不上实例、sa 密码还忘了。这篇按我自己的顺序写:先确认系统能不能装,再准备三个安装包,然后过系统配置检查器,最后才是安装中心和验证。适合手上只有一台老机器、又必须把库跑起来的人。

2. 装前准备:三个安装包的作用、校验与解压顺序

32 位 Windows 7 装 SQL Server 2012,官方给的介质不是一个 exe 装完事,而是一组拆开的包。第一次见这套命名的人基本都会懵:CHSx86SQLFULL_x86_CHS_Core.box、CHSx86SQLFULL_x86_CHS_Intall.exe、CHSx86SQLFULL_x86_CHS_Lang.box,三个文件名前缀一模一样,后缀却各不相同。名字里的x86说明是 32 位介质,CHS是简体中文资源,SQLFULL表示完整版而不是 Express 精简版,这三个前缀必须完全一致——混进一个 64 位的包,解压出来的目录结构就对不上,后面SETUP.EXE根本不给你点。

2.1 三个包各管什么

把这三者当成一套自解压安装介质来看,分工是很明确的:

文件作用缺失后果
CHSx86SQLFULL_x86_CHS_Intall.exe自解压引导程序,负责把整套介质释放到临时目录双击没反应,后面全做不了
CHSx86SQLFULL_x86_CHS_Core.box核心安装体,数据库引擎、SSMS、各服务组件都在里面解压中断,报「安装介质不完整」
CHSx86SQLFULL_x86_CHS_Lang.box简体中文语言资源包装完界面是英文,部分本地化组件缺失

这三个文件必须放在同一个目录下,且目录名不要带空格和中文。我一般的做法是在 D 盘建一个D:\sql2012_setup,三个文件全丢进去,避免放在桌面或「下载」这种路径里——路径里有中文,自解压程序偶尔会把文件释放到一个乱码目录,SETUP.EXE就找不到了。

2.2 先算哈希再双击

在双击那个Intall.exe之前,我一定会先算一遍哈希。这一步听起来多余,但老机器上从 U 盘、内网共享盘拷过来的大文件,损坏概率比想象中高,而自解压程序对损坏的.box文件往往只给一句「解压缩失败」,不告诉你是哪个包坏了。

打开命令提示符,切到放安装包的目录:

:: 切到安装包所在目录 cd /d D:\sql2012_setup :: 逐个计算 SHA1,和介质来源提供的校验值比对 certutil -hashfile CHSx86SQLFULL_x86_CHS_Core.box SHA1 certutil -hashfile CHSx86SQLFULL_x86_CHS_Intall.exe SHA1 certutil -hashfile CHSx86SQLFULL_x86_CHS_Lang.box SHA1

certutil -hashfile后面跟文件路径,最后那个SHA1是算法参数,也可以换成MD5或SHA256,关键是要和拿到介质时附带的值用同一种算法。三个值里只要有一个对不上,别犹豫,重新拷一遍;硬着头皮往下装,最后大概率卡在功能安装阶段,报一个和文件损坏毫无关系的 MSI 错误,排查成本高得多。

2.3 解压、校验与磁盘余量

哈希对上了,双击CHSx86SQLFULL_x86_CHS_Intall.exe。它会先自解压,弹出一个进度条,然后提示你是否要运行安装程序——这时不要直接点运行,先让它把文件释放完。释放完成后,同级目录下会多出一个SQLFULL_x86_CHS文件夹,这才是真正的安装目录,里面的SETUP.EXE才是安装入口。

释放完之后,先去确认 C 盘和安装目标盘的剩余空间。官方给的最低硬盘要求是 2.2GB 可用空间,但这只是数据库引擎本体的量级;如果你在功能选择页把复制、全文检索、Analysis Services、Reporting Services 全勾上,实际占用会翻两三倍。我那台老机器的做法是:系统盘留 15GB,另挂一块数据盘放数据库文件,安装程序目录和实例目录分开,后续备份、日志撑爆盘的时候不至于把系统盘一起拖死。

提示:自解压过程在 2GB 内存的 32 位机器上可能要好几分钟,进度条卡在末尾不动是正常的写入磁盘,不要急着点取消,中断一次就得从头再来。

3. 预检:系统配置检查器要看的六类规则

安装中心里有个「系统配置检查器」,很多人直接跳过,我建议一进来就点它。这个工具做的事情很简单:在你真正开始装之前,把那些会让安装中途失败的条件先列出来。跳过它的代价是,报错发生在安装进行到一半的时候,前面积累的配置全部作废,得清干净重来。

3.1 检查项逐条对照

检查器跑完会给一张列表,每项一个状态标记。常见的几类:

  • 操作系统版本:Windows 7 SP1、Windows Server 2008 R2、Windows Server 2008 SP2 都在支持列表内。注意 SP1 不能少,光秃秃的 Windows 7 会直接被判不通过。
  • 处理器架构与版本匹配:32 位系统必须配 32 位介质,反了会报「安装程序不支持此平台」。
  • WMI 服务状态:Windows Management Instrumentation 服务被禁用或损坏,安装程序读不到硬件信息,检查器直接红叉。
  • 性能计数器注册表配置单元一致性:这个是最常见的失败项之一,原因通常是之前装过别的数据库或监控软件,把性能计数器登记表搞坏了。
  • 重启挂起:系统里有未完成的重启操作,注册表PendingFileRenameOperations有残留。
  • .NET Framework 与 PowerShell 版本:某些功能依赖 .NET 3.5 SP1 和 PowerShell 2.0,缺了会在功能选择页才暴露。

硬件门槛顺带对一下:32 位系统最低 1GHz 处理器,官方建议 2GHz 以上;内存最低 1GB,建议 2GB 以上。我手上这台 2.1GHz 双核、2.93GB 内存的机器刚好在建议线的下沿,能装,但别指望装完跑得快。

3.2 三条红叉的现场处理

重启挂起。检查器报这个的时候,先重启一次机器;重启完还报,就是注册表里有残留项。打开注册表编辑器,定位到下面两个位置,把PendingFileRenameOperations的值删掉:

:: 用命令行打开注册表编辑器,手动定位删除更安全 regedit :: 需要检查的两个键路径(在 regedit 里逐级展开): :: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager :: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

Session Manager下的PendingFileRenameOperations是多值项,删之前先右键导出备份一份,改注册表不留后悔药是血泪经验。RunOnce下如果有指向安装程序残留的项,也一并清掉。改完不用重启,回到检查器重跑一次。

性能计数器损坏。这个报错的处理方式是重建计数器缓存:

:: 以管理员身份运行命令提示符 :: /R 表示从注册表重建所有性能计数器 lodctr /R :: 重建后刷新 WMI 仓库,避免检查器仍读旧数据 winmgmt /salvagerepository

lodctr /R会从%SystemRoot%\System32\PerfStringBackup.INI恢复计数器定义,执行时可能刷一屏的「正在还原」,中间夹几条失败也正常,只要最后没有整体报错。winmgmt /salvagerepository是修复 WMI 仓库的常规手段,比/resetrepository温和,后者会把自定义命名空间一起清掉,别乱用。

WMI 服务被禁用。进服务管理器把 Windows Management Instrumentation 改成自动并启动,如果启动失败,多半是仓库损坏,同样走上面那条winmgmt命令。

3.3 依赖项先补齐

Windows 7 默认不带 .NET Framework 3.5,而 SQL Server 2012 的部分安装组件依赖它。与其等安装程序中途弹框让你「安装此功能」,不如提前开启:

:: 以管理员身份执行,从系统镜像启用 .NET Framework 3.5 :: /Source 指向挂载的 Windows 7 安装镜像盘符,没有镜像可省略该参数走在线源 dism /Online /Enable-Feature /FeatureName:NetFx3 /All /Source:E:\sources\sxs /LimitAccess

/Online表示对当前运行的系统操作,/FeatureName:NetFx3就是要启用的功能名,/All连同父功能一起启用,/LimitAccess阻止向 Windows Update 请求文件——内网机器上不加这个参数会卡在联网检测很久。执行完会提示需要重启,重启后再跑一次系统配置检查器,把红叉清干净再进安装中心。

4. 安装中心实操:密钥、功能、实例与身份验证

预检通过之后,双击SQLFULL_x86_CHS目录里的SETUP.EXE,等它把「SQL Server 安装中心」拉起来。这个界面左侧是计划、安装、维护、工具、资源几栏,真正要走的只有一条路:安装 → 全新 SQL Server 独立安装或向现有安装添加功能。升级安装那条路要求提供旧版本的升级介质,还要额外跑一遍升级规则检查,不是这次的目标。

4.1 产品密钥与许可条款

密钥这一步有个容易踩的坑:密钥和介质版本必须对得上。拿 Standard 的密钥去激活 Enterprise 介质,向导会在检测阶段直接拒绝;反过来用评估版介质配正式密钥,也可能提示版本不匹配。手上只有评估密钥的话,装出来的是 180 天评估版,到期后实例会进入只读状态——这个限制在测试环境无所谓,生产环境一定要提前确认密钥来源。

许可条款勾选之后,向导会自动跑一遍「安装程序支持规则」,这一轮检查和之前的系统配置检查器不是一回事:检查器查的是机器状态,支持规则查的是这次安装动作本身能不能继续,比如安装介质路径是否可读、产品密钥格式是否合法。出现警告时向导允许你继续,出现错误则必须处理。我一般的判断标准是:警告项要么当场解决,要么明确知道它不影响我要装的功能;错误项一律处理掉,不要赌。

4.2 功能选择:必装与别装

功能树这一页决定了后面几分钟还是几十分钟。32 位老机器上,我的原则是只装用得上的:

  • 数据库引擎服务:必装,核心。
  • SQL Server 复制:需要做数据同步才勾,否则跳过。
  • 全文和语义提取搜索:做中文全文检索才勾,勾了会多出一个 fdhost 进程占内存。
  • Analysis Services / Reporting Services:报表和多维分析才需要,单机小系统通常不装。
  • 分布式重播控制器与客户端:这是 SQL Server 2012 新引入的一组服务,用于回放跟踪做压力测试,绝大多数场景用不上,别因为「看起来高级」就勾。
  • 管理工具-基本 / 完整:至少要勾「基本」,否则装完没有 SSMS,只能靠 sqlcmd 敲命令。完整版包含 Profiler 等工具,磁盘紧张就选基本。

功能页下方会实时显示所选功能的磁盘占用,勾选变化时数字会跳。看着这个数字决定取舍,比事后删功能省事得多。另外这一页有「共享功能目录」和「实例根目录」两个路径,都建议保持默认,或者至少保证路径里没有中文和空格——实例根目录带中文,后面打补丁时补丁程序认不出实例,是典型的长尾故障。

4.3 实例命名与目录规划

实例配置页有两个选项:默认实例和命名实例。默认实例在网络上就叫机器名,客户端直接连机器名或.;命名实例要用机器名\实例名的形式连,并且依赖 SQL Server Browser 服务来解析端口。一台机器只装一个库,选默认实例最省事;已经有一个旧版本实例在旁边,就必须用命名实例,比如MSSQLSERVER2012,避免和旧实例抢同一个实例名。

实例 ID 会自动跟着实例名填,这个 ID 会成为安装路径的一部分,比如MSSQL12.MSSQLSERVER2012。它一旦确定就不能改,除非卸载重装。我见过有人在实例 ID 里填了带下划线和中文说明的字符串,装到一半路径过长报错,只能推倒重来。

如果打算做批量部署或者以后要重复装,可以直接用配置文件走静默安装,把这一页的选择固化成参数:

:: 在安装介质根目录执行,用应答文件驱动安装 :: 先让向导生成模板,再按需修改更稳妥 setup.exe /ACTION=Install /CONFIGURATIONFILE="D:\sql2012_setup\ConfigurationFile.ini" :: 关键参数示例(写在 ini 文件里) :: INSTANCENAME="MSSQLSERVER2012" :: INSTANCEID="MSSQLSERVER2012" :: SQLCOLLATION="Chinese_PRC_CI_AS" :: SECURITYMODE="SQL" :: SAPWD="<强密码>" :: SQLSYSADMINACCOUNTS="机器名\Administrator" :: FEATURES=SQLENGINE,CONN

/ACTION=Install指定执行安装动作,/CONFIGURATIONFILE指向应答文件。FEATURES里SQLENGINE是数据库引擎、CONN是连接组件,其他功能用逗号继续追加。SQLSYSADMINACCOUNTS这一项务必写清楚,它就是后面「指定 SQL Server 管理员」的答案,漏了会导致装完只有 sa 一个入口。

4.4 服务器配置:服务账号与排序规则

服务器配置页要同时定两件事:每个服务用什么账号跑,以及数据库排序规则用什么。

服务账号默认给的是虚拟账号,形如NT Service\MSSQLSERVER,这是 SQL Server 2012 推荐的做法,不需要给真实账户配密码,权限也收得比较紧。只有在需要访问网络共享、或者要读取别的机器上的文件时,才改成域账户。改域账户就得填密码,密码策略变更后服务起不来,是运维夜里被叫起来的经典原因,非必要不改。

排序规则默认是Chinese_PRC_CI_AS,含义是中文简体、不区分大小写、区分重音。这一项在实例级别设定,装完之后改要重建整个实例,成本极高。做中文业务系统就保持默认;如果这个库将来要和另一台服务器做跨库查询或者复制,两边的排序规则必须一致,否则联合查询会报排序规则冲突,到时候只能靠在查询里逐列加COLLATE兜着,非常难受。

这一页还会显示 SQL Server 代理、全文搜索等服务。代理服务在做定时备份、作业调度时要用,建议设成自动启动;全文搜索如果前面没勾功能,这里就是灰的。

4.5 数据库引擎配置:身份验证与管理员

数据库引擎配置页是整个安装里最需要想清楚的一页。

身份验证模式有两种:Windows 身份验证模式,和混合模式。默认是前者,只认 Windows 账户,安全性最好,但意味着所有连接都必须带着域或本地账户上下文;混合模式同时允许 SQL Server 自己的账户登录,方便应用程序用账号密码连库,代价是要维护好 sa 的密码。

选混合模式时,向导强制要求设置 sa 密码,并且要求点「添加当前用户」把至少一个 Windows 账户加进管理员列表。这一步千万别图快跳过——如果只设了 sa 密码却没加 Windows 管理员,而 sa 密码又是个随手敲的弱口令,装完第一次登录就可能卡住。我一般的做法是:sa 设一个长随机密码,记在密码管理工具里,日常不用它登录;把当前 Windows 账户和BUILTIN\Administrators一起加进管理员列表,用 Windows 身份验证日常管理。

注意:sa 账户本身不会被禁用,但可以在装完之后手动禁用,需要时再启用。密码忘了的补救方式是单用户模式启动实例,用本地管理员身份把自己加回 sysadmin 角色,这个操作要在服务停掉之后做,生产环境务必挑窗口期。

后面的 Analysis Services 配置、Reporting Services 配置、分布式重播控制器配置,只有前面勾了对应功能才会出现,没勾就直接跳过。错误报告页可以选择不发送,内网环境一般都不发。最后一页是准备安装的确认清单,把实例名、功能列表、排序规则、安装路径、管理员账户逐项对一遍,确认无误再点安装。

安装过程本身在 32 位老机器上确实慢,我那次从点下安装到出现「完成」,前后接近一个小时,中间在「正在安装数据库引擎」阶段停留最久。这时候别开任务管理器反复看,也别同时开浏览器——2GB 多的内存余量,再挤一个浏览器进程进去,安装程序的内存分配就紧张了。

5. 避坑与排查:五条现场记录

下面这五条全是安装过程中真实会撞上的,按「现象 → 原因 → 解决」记。

5.1 安装前就过不去的两类

第一条:检查器一直报「需要重新启动计算机」。

现象:重启了三次,系统配置检查器仍然红叉,提示挂起的重命名操作未完成,向导不让继续。

原因:注册表Session Manager下的PendingFileRenameOperations有残留值。很多安装程序(包括 .NET Framework 的更新、杀毒软件的组件升级)会写这个键,约定了「下次开机时替换这些文件」,但机器一直没重启,或者重启流程被快速启动功能绕过了。

解决:重启一次,进注册表把该值导出备份后删除,再清一遍RunOnce下的安装残留项。如果是 Windows 8 以后的快速启动导致的,改用「重启」而不是「关机再开」。清完立刻重跑检查器,通常就绿了。

第二条:性能计数器一致性检查失败。

现象:检查器提示性能计数器注册表配置单元一致性检查失败,或者安装进行到一半报「无法加载计数器」。

原因:性能计数器注册表损坏,常见于克隆的虚拟机镜像、装过多个数据库产品的机器。

解决:管理员命令行执行lodctr /R重建计数器,再执行winmgmt /salvagerepository修复 WMI 仓库。重建后部分自定义计数器会丢失,需要重新注册,但常规系统计数器恢复后检查器就能过。

5.2 装到一半的报错

第三条:功能安装阶段报缺少 .NET Framework 3.5 SP1。

现象:功能选择页能过,安装进行到一半弹出「此计算机上未启用 Microsoft .NET Framework 3.5」,安装回滚。

原因:Windows 7 默认只带 .NET 4.x,3.5 是按需功能,不在系统里预装。安装程序在准备阶段没拦住,到安装阶段才发现。

解决:用dism /Online /Enable-Feature /FeatureName:NetFx3 /All提前启用,内网机器记得加/Source指向系统镜像的sxs目录。回滚过一次的机器要先清干净:卸载已装的组件、删掉安装目录、重启,再重新跑安装。

第四条:实例名或路径导致安装中断。

现象:安装到最后阶段报路径非法或实例 ID 无效,向导退出。

原因:实例 ID 里带了中文、空格或特殊字符;或者把实例根目录设在了很深的层级,路径总长度超出限制。

解决:实例 ID 只用字母数字,安装目录保持默认或者放到D:\SQL2012这种短路径下。已经装了一半失败的,必须先在控制面板里把已安装的实例卸载干净,再删掉残留目录,否则重装时会报实例已存在。

5.3 装完连不上的两类

第五条:SSMS 连不上命名实例,报找不到服务器。

现象:安装成功,服务也起来了,但 SSMS 用机器名\实例名连不上,用localhost也时好时坏。

原因:命名实例默认走动态端口,客户端靠 SQL Server Browser 服务(UDP 1434)查询实例实际监听的端口。Browser 服务被设成手动或禁用,客户端就查不到端口;再加上防火墙没放行,连接必然失败。

解决:把 SQL Server Browser 服务设成自动并启动,然后在实例的 TCP/IP 协议属性里把动态端口改成固定的 1433,重启实例。防火墙放行端口:

:: 放行 SQL Server 默认实例的 TCP 1433 netsh advfirewall firewall add rule name="SQL2012-1433" dir=in action=allow protocol=TCP localport=1433 :: 放行 SQL Server Browser 的 UDP 1434,命名实例解析必需 netsh advfirewall firewall add rule name="SQL2012-Browser" dir=in action=allow protocol=UDP localport=1434 :: 确认规则已生效 netsh advfirewall firewall show rule name="SQL2012-1433"

dir=in是入站方向,action=allow表示放行,protocol和localport组合限定端口。改完用netstat -ano | findstr :1433看实例是不是真的在监听这个端口,监听地址是0.0.0.0才对,只监听127.0.0.1说明 TCP/IP 协议没启用,要去配置管理器里打开。

6. 装完怎么验证:三层确认与一条查询

安装向导弹出「完成」不代表这套环境就能用。我装完数据库一定会走三层验证,少一层都不放心。

服务层:确认关键服务处于运行状态,启动类型是自动。

:: 查询数据库引擎服务状态,SERVICE_NAME 按实例名调整 sc query MSSQLSERVER sc qc MSSQLSERVER :: 命名实例的服务名形如 MSSQL$MSSQLSERVER2012 sc query "MSSQL$MSSQLSERVER2012"

sc query看当前状态,sc qc看启动类型和依赖关系。状态是RUNNING、启动类型是AUTO_START才算合格。代理服务和 Browser 服务按需确认。

网络层:确认端口在监听,且能从另一台机器连上。

:: 查看 1433 端口监听情况,最后一列是进程 PID netstat -ano | findstr :1433 :: 从客户端机器测试端口连通性 telnet 数据库机器IP 1433

netstat结果里监听地址是0.0.0.0:1433表示对所有网卡开放,127.0.0.1:1433表示只在本地可用。用tasklist | findstr <PID>可以反查是哪个进程占的端口,确认就是 sqlservr.exe。

查询层:用 sqlcmd 实际连一次,跑一条查询,再建一个测试库。

:: 用 Windows 身份验证连接默认实例 sqlcmd -S . -E -Q "SELECT @@VERSION AS 版本, SERVERPROPERTY('Collation') AS 排序规则" :: 连接命名实例 sqlcmd -S .\MSSQLSERVER2012 -E -Q "SELECT name, state_desc FROM sys.databases" :: 用 SQL 身份验证测试 sa 账号(密码用实际设置的那个) sqlcmd -S . -U sa -P "你的强密码" -Q "SELECT SUSER_NAME() AS 登录名"
-- 建一个测试库,验证写入权限和文件路径都正常 CREATE DATABASE VerifyDB ON PRIMARY ( NAME = N'VerifyDB', FILENAME = N'D:\SQLData\VerifyDB.mdf', SIZE = 20MB, FILEGROWTH = 10MB ) LOG ON ( NAME = N'VerifyDB_log', FILENAME = N'D:\SQLData\VerifyDB_log.ldf', SIZE = 10MB, FILEGROWTH = 10MB ); GO -- 插一条数据再查回来,确认读写链路完整 USE VerifyDB; CREATE TABLE t_check(id INT PRIMARY KEY, note NVARCHAR(50)); INSERT INTO t_check VALUES (1, N'安装验证'); SELECT * FROM t_check; GO

@@VERSION返回具体的版本号、位数和系统信息,能直接看出装的是 32 位还是 64 位;SERVERPROPERTY('Collation')确认排序规则是不是预期的Chinese_PRC_CI_AS。建库语句里显式写FILENAME,是为了验证数据目录确实有写权限——默认路径能建库、指定路径报拒绝访问,是权限没配好的典型表现。验证完这个库可以直接删掉,别留着。

验证项命令合格标准
服务状态sc query MSSQLSERVER状态 RUNNING,启动类型 AUTO_START
端口监听netstat -ano | findstr :1433监听 0.0.0.0:1433
实例连通sqlcmd -S . -E -Q "SELECT 1"返回 1,无报错
排序规则SERVERPROPERTY('Collation')Chinese_PRC_CI_AS
数据目录权限指定 FILENAME 建测试库建库成功,文件落在指定路径

这套三层验证跑完,我才敢把这台机器交出去。从那以后我每次装完 SQL Server,不管多急,都强制把sc query、netstat、sqlcmd这三条命令走一遍,哪怕前两项都绿了,也要真的连上去查一次版本号——安装向导说完成,和实例真能干活,是两回事。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询