SQL Server 2012 安装图解教程:从下载到跑通第一条查询
简介这份PDF图解教程面向需要在Windows 7 SP1 32位环境下部署SQL Server 2012的初学者与运维人员帮助解决从下载安装包到完成全新独立安装的全流程问题。资源包共1个PDF文件约786KB以图文并茂的截图形式呈现便于对照操作。教程从软硬件环境参数讲起明确32位系统需下载的三个安装包并逐步演示解压、运行SETUP.EXE、进入SQL Server安装中心的过程随后展开系统配置检查器、产品密钥、许可条款、程序支持规则检查、功能选择、实例安装、磁盘空间需求、服务器配置、数据库引擎配置、Analysis Services与Reporting Services配置等关键环节同时说明Windows身份验证与混合模式的区别及管理员设置方法。目前已有2244人学习下载适合希望快速掌握SQL Server 2012安装要点、减少报错几率的读者参考。1. SQL Server 2012 安装图解教程从下载到跑通第一条查询如果你手上有一台 Windows Server 2008 R2 或者 Win7/Win10 的老机器业务系统又只认 SQL Server 2012那你大概率会经历一次“看着简单、装起来翻车”的过程。SQL Server 2012 安装图解教程网上一搜一大把但真正能让你一次跑通的并不多因为大部分人卡的不是“下一步”按钮而是安装前的环境检查、实例命名、账户配置和混合验证模式这几个关键点。这篇笔记面向两类人一是第一次装 SQL Server 2012 的新手照着步骤能落地二是装过 2008 R2 或 2016 但被 2012 的细节坑过的熟手能看到参数边界和排查思路。下面从下载地址怎么选、安装介质怎么验、实例怎么配一路讲到装完怎么验证、密码到期怎么处理。2. 装之前先把下载地址和安装介质确认清楚2.1 sql2012下载地址怎么选才不踩雷SQL Server 2012 已经停止主流支持官方直接下载入口早就收了现在能拿到的介质基本是三种来源MSDN/VLSC 订阅下载、企业内网归档的 ISO、以及第三方站点转存的镜像。我一般只推荐前两种第三方转存最大的问题是文件被二次打包SHA1 对不上装到一半报“安装程序无法验证文件哈希”你都不知道是介质坏了还是系统问题。选版本的时候注意SQL Server 2012 常见的有 Standard、Enterprise、Developer、Express 四个版本。Developer 版功能跟 Enterprise 一样但授权只允许开发和测试本地练手、做兼容性验证用它最合适。Express 版有 10GB 单库上限做小工具够用但你要跑正式业务库就别选它。下载完第一件事不是双击 setup.exe而是校验哈希。微软官方发布的 ISO 一般会带 SHA1用 PowerShell 算一下# 计算 ISO 文件的 SHA1和官方公布值比对 Get-FileHash -Algorithm SHA1 D:\ISO\SQLFULL_x64_ENU_2012.iso | Format-List逻辑说明Get-FileHash是 PowerShell 4.0 以上自带的命令-Algorithm SHA1指定算法因为 SQL Server 2012 时代的官方校验值基本都是 SHA1。参数说明路径要写完整别用相对路径否则容易算错文件。算出来的 Hash 值和官方页面上的值逐位比对只要有一位不一样别犹豫重新下。提示如果只有第三方来源至少确认 ISO 能被 7-Zip 正常打开、目录结构里有setup.exe和x64文件夹缺一个都别装。2.2 安装前的环境检查清单SQL Server 2012 对系统环境有硬性要求装之前花五分钟检查能省掉后面一小时的排错。下面这张表是我自己装机前必看的几项检查项要求不满足的后果操作系统Win7 SP1 / Win Server 2008 R2 SP1 及以上安装程序直接拒绝启动.NET Framework3.5 SP1 和 4.0 都要装安装中途报“缺少组件”内存最低 1GB建议 4GB 以上装完服务起不来或极慢磁盘空间系统盘至少 6GB 可用安装到一半空间不足回滚账户权限本地管理员无法创建实例和服务.NET Framework 3.5 在 Win10/Win Server 2016 以上默认没开需要手动启用# 启用 .NET Framework 3.5需要联网或指定源 Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All逻辑说明Enable-WindowsOptionalFeature是 DISM 的 PowerShell 封装-FeatureName NetFx3就是 .NET 3.5 的功能名。参数说明-All表示启用所有父功能不加有时候会漏掉子组件。如果机器不能联网加-Source D:\sources\sxs指向系统镜像里的源目录。另外如果你机器上已经装了 SQL Server 2008 R2 或者更新的版本注意实例名不能冲突。默认实例只能有一个装 2012 的时候要么用命名实例要么先把老版本的服务停掉再装。3. 跟着安装向导走实例配置和账户设置是重头戏3.1 从 setup.exe 到功能选择的完整步骤双击 ISO 里的setup.exe进入 SQL Server 安装中心左侧选“安装”右边点“全新 SQL Server 独立安装或向现有安装添加功能”。接下来几步是常规的产品密钥Developer 版可以跳过、许可条款、安装规则检查。规则检查如果有警告先看是不是 Windows 防火墙没开或者挂起了重启能修就修别硬闯。到了“功能选择”这一步新手容易全勾其实没必要。我一般只勾这几项Database Engine Services核心必选SQL Server Replication需要做数据同步才勾Full-Text and Semantic Extractions for Search要做全文检索才勾Client Tools Connectivity 和 Client Tools Backwards Compatibility管理工具和旧版兼容建议勾Management Tools - BasicSSMS 管理界面必勾共享功能目录保持默认就行改路径的话后面打补丁容易找不到。3.2 实例配置默认实例还是命名实例实例配置这一步是分水岭。默认实例就是机器名本身比如MSSQLSERVER客户端连的时候直接写机器名或 IP 就行。命名实例是你自己起名字比如SQL2012连接的时候要写机器名\SQL2012。我的建议是如果这台机器只跑一个 SQL Server用默认实例省事。如果已经有一个老版本在用默认实例那 2012 必须用命名实例否则装不上。命名实例的名字别用中文、别带空格用字母加数字最稳。实例 ID 一般跟实例名保持一致目录会自动生成。排序规则Collation这一步中文业务系统我一般选Chinese_PRC_CI_ASCI 是不区分大小写AS 是区分重音。如果你们的系统对大小写敏感那就选Chinese_PRC_CS_AS但这个改起来很麻烦装之前跟开发确认好。3.3 服务账户和身份验证模式怎么配服务账户这一步SQL Server 2012 默认给的是NT Service\MSSQLSERVER这种虚拟账户本地跑没问题。但如果你的数据库要访问网络共享、或者要跟域控打交道就得换成域账户格式是域名\用户名密码填上。换域账户的时候注意这个账户需要有“作为服务登录”的权限否则服务起不来。身份验证模式选“混合模式”也就是 Windows 身份验证和 SQL Server 身份验证都开。纯 Windows 模式在本地开发没问题但很多老业务系统连接字符串里写的是sa账户你只开 Windows 模式它就连不上。混合模式下要设置sa账户密码密码强度有要求至少 8 位包含大小写字母、数字和符号中的三类。设简单了安装程序会警告但可以强行下一步不过我不建议后面密码到期更麻烦。指定管理员的时候点“添加当前用户”把装机的这个账户加进去。别只加sa万一sa密码忘了你连改密码的入口都没有。4. 装完别急着用验证服务和排查常见报错4.1 验证安装是否成功的三个动作安装程序跑完会显示“成功”但别急着关。先做三件事第一打开“服务”services.msc找SQL Server (MSSQLSERVER)或SQL Server (SQL2012)看状态是不是“正在运行”。如果是空的或者停了右键启动起不来就看事件查看器里的应用程序日志。第二打开 SSMSSQL Server Management Studio用 Windows 身份验证连本机。连的时候服务器名称写localhost或者.\MSSQLSERVER默认实例命名实例写.\SQL2012。连上了说明实例正常。第三跑一条查询验证版本-- 查看当前实例的版本和版本号 SELECT VERSION AS VersionInfo, SERVERPROPERTY(ProductVersion) AS ProductVersion;逻辑说明VERSION返回完整的版本描述SERVERPROPERTY(ProductVersion)返回纯版本号比如11.0.2100.60就是 SQL Server 2012 的 RTM 版本。参数说明SERVERPROPERTY的参数名大小写不敏感但建议按官方写法来。如果返回的版本号是 11 开头说明装的是 201210 开头是 2008 R2别搞混。4.2 安装报错和连接失败的排查路径装 SQL Server 2012 最常见的报错有三个。第一个是“安装程序无法启动”多半是 .NET 3.5 没开或者挂起了重启重启一次再装。第二个是“实例名已存在”说明默认实例被占了换命名实例。第三个是装完连不上报“无法连接到服务器”这时候按顺序查服务有没有起来TCP/IP 协议有没有启用打开 SQL Server 配置管理器网络配置里看防火墙有没有放行 1433 端口远程连接有没有开SSMS 里右键实例属性连接勾选“允许远程连接到此服务器”TCP/IP 默认是禁用的启用后要重启 SQL Server 服务才生效。这一步很多人漏掉然后一直以为是密码问题。5. 避坑与常见问题密码到期、端口冲突和补丁顺序5.1 sa 密码到期导致连接被拒现象用sa账户连数据库报“用户 sa 登录失败”但密码明明是对的。原因SQL Server 2012 默认对 SQL 登录账户启用了“密码过期”策略sa密码超过 90 天没改就会被锁。解决用 Windows 身份验证登录 SSMS展开“安全性”-“登录名”右键sa属性里把“强制实施密码过期策略”的勾去掉然后重新设一个密码。或者直接跑 SQL-- 关闭 sa 账户的密码过期策略并重设密码 ALTER LOGIN sa WITH PASSWORD NewPssw0rd2012, CHECK_POLICY OFF;逻辑说明ALTER LOGIN修改登录账户属性CHECK_POLICY OFF关闭密码策略检查。参数说明密码要符合复杂度要求否则即使关了策略也可能被系统拒绝。改完记得ALTER LOGIN sa ENABLE;确保账户是启用状态。5.2 端口 1433 被占用或没监听现象本地能连远程连不上telnet 1433 端口不通。原因要么 TCP/IP 没启用要么 1433 被其他程序占了要么防火墙拦了。解决先在配置管理器里确认 TCP/IP 已启用然后看 IP 地址标签页里 IPAll 的 TCP 端口是不是 1433。如果被占改成 1434 或其他端口但客户端连接字符串也要跟着改。防火墙放行命令# 放行 1433 入站 New-NetFirewallRule -DisplayName SQL Server 1433 -Direction Inbound -Protocol TCP -LocalPort 1433 -Action Allow逻辑说明New-NetFirewallRule创建防火墙规则-Direction Inbound是入站-Action Allow是允许。参数说明-LocalPort写端口号多个端口用逗号隔开。这条命令在 Win Server 2012 以上通用。5.3 补丁顺序装反导致实例起不来现象装完 2012 直接打 SP3 补丁重启后服务起不来报“无法初始化”。原因SQL Server 2012 的补丁有累积更新CU和 Service PackSP之分SP 要先于 CU 装而且某些 CU 要求先装特定的 SP。解决装完 RTM 后先装 SP3或最新的 SP再装对应的 CU。装补丁前把数据库备份一遍虽然补丁一般不动数据但万一回滚失败还有后悔药。补丁装完用SELECT VERSION确认版本号变了。5.4 排序规则选错导致中文乱码现象插入中文数据查出来是问号或者乱码。原因安装时排序规则选了SQL_Latin1_General_CP1_CI_AS这个不支持中文。解决只能重装实例或者在库级别指定排序规则。建库的时候写-- 建库时指定中文排序规则 CREATE DATABASE MyDB COLLATE Chinese_PRC_CI_AS;逻辑说明COLLATE指定数据库的默认排序规则影响字符比较和存储。参数说明Chinese_PRC_CI_AS是简体中文常用规则CI 不区分大小写AS 区分重音。如果表已经建了改排序规则要重建索引代价很大所以装实例时就要选对。5.5 安装介质解压到中文路径导致失败现象setup.exe 双击没反应或者报“找不到文件”。原因ISO 解压到了带中文或空格的路径比如“D:\安装包\SQL 2012\”。解决把 ISO 解压到纯英文、无空格的路径比如D:\SQL2012\再运行 setup.exe。这个坑在 Win7 上尤其常见Win10 以上稍微好点但养成习惯没坏处。6. 装完之后用脚本验证实例健康状态和版本兼容性装完 SQL Server 2012 只是开始真正要确认的是这个实例能不能稳定跑你的业务。我一般会跑一组检查脚本把关键指标一次性拉出来。下面这段 SQL 可以贴在 SSMS 里执行-- 实例健康检查版本、排序规则、内存、数据库状态 SELECT SERVERPROPERTY(ProductVersion) AS ProductVersion, SERVERPROPERTY(Edition) AS Edition, SERVERPROPERTY(Collation) AS ServerCollation, SERVERPROPERTY(IsIntegratedSecurityOnly) AS WindowsOnlyAuth, (SELECT COUNT(*) FROM sys.databases WHERE state_desc ONLINE) AS OfflineDBs, (SELECT physical_memory_kb / 1024 FROM sys.dm_os_sys_info) AS TotalMemoryMB;逻辑说明SERVERPROPERTY拉实例级属性sys.databases查非在线状态的库sys.dm_os_sys_info查物理内存。参数说明IsIntegratedSecurityOnly返回 1 表示只开了 Windows 验证返回 0 表示混合模式。OfflineDBs大于 0 说明有库没起来要单独排查。跑完这个再确认一下兼容级别。SQL Server 2012 默认兼容级别是 110如果你是从 2008 R2 还原过来的库兼容级别可能是 100。改兼容级别用-- 把数据库兼容级别调到 110SQL Server 2012 ALTER DATABASE MyDB SET COMPATIBILITY_LEVEL 110;逻辑说明ALTER DATABASE修改库级选项COMPATIBILITY_LEVEL 110对应 SQL Server 2012。参数说明兼容级别影响查询优化器的行为调高可能让某些老查询变快也可能让某些依赖旧行为的查询变慢改之前先在测试库验证。最后说一个我自己的习惯装完任何 SQL Server 实例第一件事是把sa密码记到密码管理器里第二件事是给实例配一个维护计划做每日备份。SQL Server 2012 虽然老但很多生产系统还在跑装一次不容易别因为密码忘了或者没备份再折腾一遍。希望帮到你。本文还有配套的精品资源点击获取