ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

SQL Server 2012安装配置全攻略:从下载到远程连接与密钥激活

SQL Server 2012安装配置全攻略:从下载到远程连接与密钥激活 家里那台老服务器上还跑着 2012 年的业务库最近要给项目组新来的同事配一个本地开发环境翻遍了网盘和官网发现 SqlServer2012 的下载、安装、启动这套流程在如今的高版本 Windows 上已经没那么傻瓜了。尤其是密钥怎么填、装完连不上、服务起不来这几个坎几乎每个新人都会踩一遍。正好借这个机会把这套从下载到跑通的完整链路重新梳理一遍希望能帮你少走点弯路。这篇内容适合谁看呢就是那些需要在一台干净的 Windows 机器上装好 SQL Server 2012完成初始化、启动服务、能用 IP 从别的电脑连上来并且搞清楚密钥去哪里弄、怎么填的兄弟们。不管你是开发、测试、运维还是学生这套流程基本都能覆盖。1. 下载前想明白三件事版本、位数和资源渠道很多人一上来就搜索SqlServer2012 下载结果进了一堆下载站点了一堆高速下载按钮最后装了个全家桶。这事真不能怪搜索引擎只能怪自己没先想清楚到底要哪个版本。1.1 版本那么多别只盯着企业版SQL Server 2012 的版本非常多看到眼花缭乱其实是正常的但实际用得上的就那几种版本用途是否免费适合场景Enterprise企业版生产环境大型业务付费靠许可证大企业、核心库Standard标准版中小规模生产/开发付费常见业务库Developer开发版开发与测试免费需要注册/订阅开发者本机Express速成版学习/小型应用免费学生、入门、轻量服务如果只是个人开发、学习、搭环境优先找 Developer 版本功能和企业版完全一样只是授权协议不允许作为生产环境使用。如果你是要部署到公司生产服务器上再考虑 Standard 或 Enterprise。Express 版本我也遇到过不少人在用但功能阉割较多比如没有 Agent 服务、单库大小限制做常规练习还行做正经项目会很难受。这个版本选择直接决定了后续的密钥填法和激活方式所以别跳过这一步。1.2 64位还是32位SQL Server 2012 只支持 64 位和 32 位两个安装包x64 版是绝对主流。但这里有个很容易踩的坑不要用你在网上下载到的32位兼容包或者绿色精简版这些打包版本经常阉割组件缺了 Full-Text Search 或者 SSMS 管理工具后面出了问题排查起来非常痛苦。2012 的安装包和 Management StudioSSMS是分开下载的。安装包是SQL Server 2012本体SSMS 是有独立安装程序的图形化管理工具。很多人装完本体之后发现没有图形界面以为出问题了其实是没装 SSMS。建议直接在微软官方渠道把两个都下齐。1.3 下载地址和资源渠道的正经选择下载 SQL Server 2012 的正规途径大概这几条微软官网下载中心搜索 SQL Server 2012 SP4 下载微软官方仍在提供服务包版本。SP4 是 2012 的最终服务包建议优先下载包含 SP4 的合集包省得后面打补丁还要重启。Visual Studio 订阅MSDN如果你有 MSDN 订阅在订阅门户里可以直接下载 ISO 镜像和获取密钥。微软 Evaluation Center可以下载评估版180 天试用试用期满后可以通过输入正式密钥升级为企业版/标准版。我最推荐官网或 MSDN 订阅下载 ISO 镜像网盘上那些已破解免激活版不太建议因为 SQL Server 2012 是商业软件使用前应当在合适的授权下进行网上分享的所谓破解版不仅来源不可控还可能被植入后门一旦用于生产环境风险非常大。密钥的问题留到后面专门讲。2. 安装过程详解每一项配置背后都有道理下载好 ISO 镜像后双击挂载Windows 8 以上可以直接双击Windows 7 需要虚拟光驱。然后就是安装向导这个过程看着是下一步下一步实际上每一步都暗藏玄机重点讲几个容易埋雷的地方。2.1 安装前必须做的检查在点安装程序之前先把这三件事做掉确认 .NET Framework 3.5 已经启用SQL Server 2012 安装程序强依赖 .NET 3.5 SP1。Windows Server 2012 / 2016 / 2019 上默认不启用这个组件安装程序会卡在检查系统配置那一步提示缺少 .NET Framework 3.5。在服务器管理器中通过添加角色和功能安装或在桌面版 Windows 的启用或关闭 Windows 功能中勾选。这一步不提前做装到一半多半会失败。盘符和目录空间安装目录所在磁盘最好预留至少 20GB 以上空间这里说的不是最小安装所需而是后续数据文件、日志文件、tempdb 都要在同一磁盘上。有条件的话把系统盘和数据盘分开后面扛并发的时候会感谢自己。管理员权限安装时右键以管理员身份运行否则有些组件注册会失败报错还特别隐蔽。2.2 安装集中配置实例、服务账户和身份验证到了 SQL Server 功能选择 和 实例配置 界面很多新手直接一路默认。这里一定要停下来思考几件事。功能选择默认会选全功能包括数据库引擎服务和客户端工具连接。如果你只需要关系型数据库至少保留数据库引擎服务和管理工具 - 完整也就是 SSMS。不需要的东西比如 Reporting Services、Analysis Services 可以先不勾减少系统开销和攻击面。实例配置这里我强烈建议不要用默认实例而是自己起一个命名实例比如SQL2012。为什么因为一台机器上往往不止一个 SQL Server或者将来还要装别的版本默认实例只允许装一个。命名实例的访问方式是机器名\实例名或IP\实例名稍微有一点麻烦但换来的自由度和可控性非常大。我自己的开发机就装了 2008R2、2012、2019 三个实例并存全靠命名实例区分。服务账户数据库引擎服务和 SQL Server Agent 服务的账户选择默认是 NT Service 或 Network Service。个人开发机就这么用没问题但千万别选 Local System因为权限过大一旦服务被攻破整个系统就被控制。如果是在公司域环境里建议专门建一个服务账户来跑 SQL Server权限最小化是运维的基本素养。身份验证模式到服务器配置的数据库引擎配置页面这里选身份验证模式。选Windows 身份验证模式在安全性上更稳妥但缺点是远程连接尤其是跨平台的 Java、Python 程序时很不方便。我给你的建议是选混合模式并在下面设置好sa的强密码。有的朋友一开始选 Windows 身份验证模式后来项目需要又切回混合模式也不是不行但绕了一圈麻烦。如果确定自己后面有可能用账号密码连库的直接一举混合。SQL Server 管理员在混合模式下面有个指定 SQL Server 管理员的框用于把当前 Windows 用户添加为sysadmin角色的成员。这一步务必把当前登录账号加上去否则可能把自己锁在外面虽然可以用单一用户模式救回来但没必要吃这个苦。2.3 数据目录系统盘和数据盘分离在数据目录配置里默认会把Data、Log、Backup目录放在C:\Program Files\Microsoft SQL Server\...下。建议改成其他盘符的专门的目录比如把数据文件放 D 盘。原因很简单C 盘既有系统又有数据库IO 竞争大而且一旦系统盘故障数据和系统一起完蛋。数据盘独立也方便备份策略把整个目录备份走。要注意改目录时四个标签页都要改数据根目录、备份目录、用户数据库目录、用户数据库日志目录。很多人只改了根目录就完事实际 user database 还是在 C 盘。3. 启动数据库服务从失败到成功的关键排查链路安装过程顺利的话最后向导会提示安装完成。此时数据库引擎服务默认是自动启动的但实际体验中服务启动失败或者安装成功但连接不上的情况非常常见。先梳理一遍完整的启动链路再讲两种高频故障的实战排查。3.1 服务和端口的基本状态检查SQL Server 2012 安装完成后Windows 服务列表里会出现几个新的服务SQL Server (MSSQLSERVER)或SQL Server (SQL2012)数据库引擎主服务SQL Server Agent (SQL2012)代理服务用来跑定时作业默认是手动启动SQL Server Browser浏览服务用来给局域网内客户端提供实例名解析默认是禁用先检查主服务是否启动。按Win R输入services.msc找到对应的服务项看状态是否为正在运行。如果是已停止右键启动如果立刻报错那就进入下一节的排查。服务启动后SQL Server 默认监听1433端口默认实例或动态端口命名实例。可以用命令确认netstat -ano | findstr 1433看到LISTENING状态就说明 SQL Server 引擎已经在正常监听了。如果命名实例没有输出多半是因为 TCP/IP 协议没启用后面详说。3.2 服务启动失败的常见原因与修复我遇到过的启动失败大致可以分成这几类第一类服务账户权限不足。安装时如果用了 Local System 倒不会出现这个但如果是自定义的域账户而该账户不是本机管理员或没有 SQL Server 相关文件夹的读写权限启动就会失败。解决办法把服务账户加进SQLServerMSSQLUser$开头的组里或者在服务属性的登录选项卡把账户改回 Network Service。第二类配置文件损坏或被改坏。当服务无法启动时最好第一时间去看 SQL Server 错误日志默认位置在C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\ERRORLOG错误日志是纯文本可以直接用记事本打开。看到关键字Failed to open database、Unable to load这类基本就是文件权限或路径问题。如果路径不存在可以把配置文件sqlservr.exe.config中的相关路径改回来。第三类端口被占用。有时候防火墙或安全软件把 1433 截了或者另一个服务占用了端口会导致启动后立即停止。改端口的方式后面第 3.3 节面里讲改完记得重启 SQL 服务。还有一个排错的好办法直接打开命令提示符手动运行数据库引擎程序可以快速看到启动日志cd C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn sqlservr.exe -c如果窗口一直不退出并显示Server is listening on说明引擎本身没问题问题出在服务配置层面。3.3 连接不上尤其是用 IP 方式连接不上的完整排查链路这是搜索热词里出现得非常高频的问题。装好了 SSMS用localhost\SQL2012连没问题但用192.168.x.x\SQL2012就连不上怎么办不要慌按下面链路一步步来基本 10 分钟内能定位第一步确认 TCP/IP 协议已启用。SQL Server 默认安装时只启用了 Shared Memory 和 Named PipesTCP/IP 默认是禁用的这就是大多数 IP 连接失败的根本原因。打开SQL Server 配置管理器在开始菜单的Microsoft SQL Server 2012文件夹里展开SQL Server 网络配置找到你的实例项右侧双击TCP/IP在协议页把已启用改成是。顺便在IP 地址页检查IPAll的 TCP 端口是否为 1433或者你想要的自定义端口。改完记得重启 SQL Server 服务net stop MSSQLSERVER net start MSSQLSERVER命名实例的话服务名对应你自己的实例名比如net stop SQL2012 net start SQL2012注意配置管理器和 SQL Server 服务管理器是两回事。很多改完 TCP/IP 之后不重启服务白白浪费半小时一定记得重启。第二步防火墙放行 1433 端口。Windows 防火墙默认会拦截不明程序的入站连接。用管理员权限命令行执行netsh advfirewall firewall add rule nameSQL Server 2012 dirin actionallow protocolTCP localport1433如果用的自定义端口把 1433 替换成你设置的端口。第三步确认 SQL Server Browser 服务在跑。如果你是命名实例客户端请求实例名时需要走 UDP 1434 端口来解析这个解析服务就是 SQL Server Browser。你可以给防火墙加一条规则放行UDP 1434然后把服务的启动类型改成自动并启动它。但如果你用的是IP\实例名这种方式连接可能还是连不上因为命名实例的解析依赖 Browser。此时如果不想用 Browser也可以直接把连接的端口写死例如tcp:192.168.1.100,1433。有了端口号客户端就不需要解析了把 SQL Browser 关掉也能连。这算是一个绕开坑的取巧办法。第四步检查 SQL Server 是否真的监听了所有 IP。在配置管理器中打开 TCP/IP 属性翻到IP 地址页如果IP1、IP2等条目里的已启用不是是或者某条 IP 地址为 0.0.0.0/废弃地址就会出现本机能连、远程不能连的怪象。把想要用的网卡对应 IP 条目启用并把端口填 1433然后重启服务后再用netstat验证。完整链路列成检查顺序就是TCP/IP 协议是否启用端口监听是否正常netstat防火墙是否放通SQL Browser 服务状态连接字符串是否走对了端口照这个顺序过一次绝大多数IP 方式连接不上都能解决。4. 密钥那点事从哪里来、怎么填、怎么验证标题里带了资源密钥这部分必须讲透。SQL Server 2012 的密钥分为多种类型搞清楚类型再动手能省去很多安装完变评估版的烦恼。4.1 密钥的合法来源MSDN / Visual Studio 订阅订阅用户可以在订阅门户直接看到 SQL Server 2012 的产品密钥这是开发测试最正规的来源。Developer 版授权包含在部分 Visual Studio 订阅里。微软官网试用从官网下载的评估版带有 180 天试用期安装时不填密钥之后可以通过输入正版密钥升级不用重新安装。正规采购的许可公司从微软或经销商购买的企业协议/批量许可密钥通常在 VLSC批量许可服务中心里。这里要强调一句网络上搜索到的密钥生成器、注册机就不要碰了。SQL Server 2012 的商业授权规则很明确非正规途径获得的密钥轻则无法激活重则涉及法律风险。公司环境下尤其不要拿开源社区流行的通用密钥去激活后续版权审计的时候非常麻烦。开发学习用 Developer 版完全免费没必要冒这个险。4.2 安装时填密钥 vs 装完再填密钥安装向导的产品密钥页面有两种玩法安装时直接填这种情况最省心安装后直接是完整版。如果密钥是 Evaluation评估类型安装后就是评估版。跳过不填选择Evaluation或指定版本安装完成后在SQL Server 配置管理器或通过命令行把密钥补进去。补密钥的方式如下。装完补密钥的方式是打开命令行进入 SQL Server 的Binn目录cd C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn sqlservr.exe -q -k YourProductKey把YourProductKey替换成自己的密钥。-k参数就是把密钥写入当前实例。执行完会返回一个确认提示或者没有输出但状态变了然后重启 SQL Server 服务版本就从Evaluation变成了Enterprise或Standard。这里要提醒的是这种命令行方式在安装损坏或版本混乱的时候很容易失效所以更推荐在安装向导阶段就把密钥填了。4.3 如何确认当前实例的版本和激活状态看当前版本很简单在 SSMS 里执行SELECT SERVERPROPERTY(Edition) AS Edition, SERVERPROPERTY(ProductVersion) AS Version, SERVERPROPERTY(ProductLevel) AS ServicePack, SERVERPROPERTY(IsIntegratedOnly) AS AuthMode;如果Edition显示Enterprise Edition (64-bit)而不是Enterprise Evaluation Edition (64-bit)说明激活成功。如果显示的是Evaluation并且安装已经超过 180 天连接时可能会遇到数据库引擎直接停止工作的情况。有些朋友会遇到装的时候填了密钥但显示还是 Evaluation的怪事。常见原因是密钥格式不对比如把XXXXX-XXXXX-XXXXX-XXXXX-XXXXX的横杠漏掉或者混入了空格。填写时要注意密钥里没有数字 0 和字母 O 的混淆问题可以用键盘逐一核对。如果确实通过命令行补密钥失败可以打开安装中心选择维护下的版本升级向导界面里重新输入产品密钥这也是微软支持的做法。触发另一个潜在误区有些人认为安装 SQL Server 2012 之后密钥激活完成就不用管了其实 SQL Server 是按实例授权的同一台机器上装多个实例每个实例都需要各自的密钥。MSDN 订阅的密钥一般允许在多个实例上使用但商用许可要看条款。5. 装完之后的几件小事安全基线、自动启动和运维习惯安装启动只是开始这里分享几个我在实际使用 2012 过程中觉得非常有必要马上做掉的小事。5.1 sa 口令和认证策略混合模式下sa账户是一个巨大的风险点。很多人在测试环境里把密码设为123456图方便。这个习惯一旦被带到生产环境等于给数据库裸奔。安装完成后的第一件事就是把sa改成强口令至少 12 位包含大小写、数字、特殊字符。然后设置登录审计策略ALTER LOGIN [sa] WITH CHECK_POLICY ON; ALTER LOGIN [sa] WITH CHECK_EXPIRATION ON;这两条命令会让 sa 的口令强制满足 Windows 密码策略并且定期过期。如果实在不需要远程密码登录干脆禁用 saALTER LOGIN [sa] DISABLE;平时用 Windows 身份验证或专用服务账号登录需要时再临时启用 sa。这是最简单有效的安全基线。5.2 自动启动确认和崩溃恢复如果你的 SQL Server 是装在 Windows Server 上并且希望断电重启后数据库自动起来需要在服务管理器里将启动模式设为自动。另外 2012 的老版本有一个比较头疼的问题突然断电后重启数据库会进入正在恢复或可疑状态。此时不要急着删库文件先执行这段查看状态SELECT name, state_desc FROM sys.databases;如果是 RECOVERY_PENDING 或 SUSPECT首先检查磁盘剩余空间和错误日志多数情况下重启 SQL 服务一次能恢复。演示环境还好生产环境建议把AUTO_CLOSE关掉避免频繁被打开-关闭折磨ALTER DATABASE [YourDB] SET AUTO_CLOSE OFF;5.3 检查自动备份是否真的在工作SQL Server 2012 本身带维护计划功能在 SSMS 的管理节点下可以配置维护计划向导来做全库备份。但很多人配置完就忘半年后发现有计划的作业根本没跑。这里分享一个小技巧检查 Agent 服务是否在运行以及对应作业是否被启用的三个命令SELECT name, enabled FROM msdb.dbo.sysjobs; -- 查看所有作业及其启用状态 EXEC msdb.dbo.sp_help_job; -- 查看作业详情和最近运行时间 SELECT TOP 10 * FROM msdb.dbo.sysjobhistory ORDER BY run_date DESC, run_time DESC; -- 查看历史运行记录如果 Agent 服务是手动启动状态而你的维护计划又要调度执行那永远不会跑。记得把 SQL Server Agent 服务启动并设为自动。5.4 内存和 CPU 的默认设置是否需要动SQL Server 2012 默认最大内存设置为 Integer.MAX_VALUE等于它对系统内存用量不设上限机器上如果还跑着别的应用大概率会内存吃满。数据库引擎的默认内存配置是尽可能多用所以当你的服务器同时支撑 Web 服务时特别容易出现整体卡顿。在 SSMS 的实例属性 - 内存页建议设置最大服务器内存MB为系统物理内存的 70%~80%。比如物理内存 16GB就设置 12288 MB 左右留出 3~4GB 给操作系统和其他进程。这个数值不会卡得很死后面可以根据实际监控再做微调。写在最后的一点个人经验SQL Server 2012 虽然已经是一个老版本但在很多企业内部依然是主力版本。我这些年见过太多因为当初随便装了个数据库导致的后续痛苦有的是用的精简版缺少关键组件有的是没用 SP4 导致一些兼容性问题有的是没启用 TCP/IP 导致应用死活连不上。如果你准备把它用在非生产环境建议按这套流程重装一次熟悉一下每个选项设置项顺便把密钥的来源和激活逻辑搞清楚。后面不管换到什么新版本这套下载-规划-安装-启动-验证的套路都是通用的。装完第一次后别急着建库先用五分钟把第 5 节的几件事做完你会发现后面省下的时间远不止五分钟。我自己实战下来最想提醒的就是下载尽量走官方版本选 Developer 或正规授权安装时把身份验证模式和数据目录一次配好装完先把 TCP/IP 启用再顺手把 sa 口令改掉。这五步做完90% 的安装问题基本都绕开了。
返回列表