简介面向准备在 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 SHA1certutil -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\RunOnceSession Manager下的PendingFileRenameOperations是多值项删之前先右键导出备份一份改注册表不留后悔药是血泪经验。RunOnce下如果有指向安装程序残留的项也一并清掉。改完不用重启回到检查器重跑一次。性能计数器损坏。这个报错的处理方式是重建计数器缓存:: 以管理员身份运行命令提示符 :: /R 表示从注册表重建所有性能计数器 lodctr /R :: 重建后刷新 WMI 仓库避免检查器仍读旧数据 winmgmt /salvagerepositorylodctr /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 /ACTIONInstall /CONFIGURATIONFILED:\sql2012_setup\ConfigurationFile.ini :: 关键参数示例写在 ini 文件里 :: INSTANCENAMEMSSQLSERVER2012 :: INSTANCEIDMSSQLSERVER2012 :: SQLCOLLATIONChinese_PRC_CI_AS :: SECURITYMODESQL :: SAPWD强密码 :: SQLSYSADMINACCOUNTS机器名\Administrator :: FEATURESSQLENGINE,CONN/ACTIONInstall指定执行安装动作/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.x3.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 nameSQL2012-1433 dirin actionallow protocolTCP localport1433 :: 放行 SQL Server Browser 的 UDP 1434命名实例解析必需 netsh advfirewall firewall add rule nameSQL2012-Browser dirin actionallow protocolUDP localport1434 :: 确认规则已生效 netsh advfirewall firewall show rule nameSQL2012-1433dirin是入站方向actionallow表示放行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$MSSQLSERVER2012sc query看当前状态sc qc看启动类型和依赖关系。状态是RUNNING、启动类型是AUTO_START才算合格。代理服务和 Browser 服务按需确认。网络层确认端口在监听且能从另一台机器连上。:: 查看 1433 端口监听情况最后一列是进程 PID netstat -ano | findstr :1433 :: 从客户端机器测试端口连通性 telnet 数据库机器IP 1433netstat结果里监听地址是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 NVerifyDB, FILENAME ND:\SQLData\VerifyDB.mdf, SIZE 20MB, FILEGROWTH 10MB ) LOG ON ( NAME NVerifyDB_log, FILENAME ND:\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; GOVERSION返回具体的版本号、位数和系统信息能直接看出装的是 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这三条命令走一遍哪怕前两项都绿了也要真的连上去查一次版本号——安装向导说完成和实例真能干活是两回事。希望帮到你。本文还有配套的精品资源点击获取