前几天有个同事跟我吐槽,说新电脑上装SQL Server 2022,一路下一步,装完发现根本不知道去哪找这个数据库,SSMS也连不上,最后只能找我远程看。我问他装的是哪个版本、选的什么身份验证模式、装了哪些功能,他全程只回答“不知道,都是默认”。说实话,SQL Server的安装过程比MySQL要繁琐不少,尤其是2022版本,界面选项和以前又有一些细节变化,如果不理解每一步背后的意义,很容易装出一个“装完了但没法用”的假象环境。这篇教程我就把完整的SQL Server 2022安装过程从头到尾拆开讲,从版本怎么选、安装包怎么拿,到装完之后怎么验证连接、开远程访问,再到最常见的一批报错怎么排查,尽量做到保姆级,让第一次接触数据库的人也能顺利跑起来。
先说一下这篇内容适合谁。如果你是刚接触数据库的学生、转行学开发的程序员、想在公司内部搭个内部系统试水的运维,或者纯粹就是想把电脑上的旧版本SQL Server升级到2022,那这篇都能帮上忙。已经在生产环境维护过SQL Server的老手可能会觉得有些地方啰嗦,但排错部分和建议多少有点参考价值。
1. 安装前的准备:版本选择、环境检查与安装包下载
1.1 版本选择:别一上来就装Enterprise
很多人下载安装包的时候看到Enterprise和企业版字样就觉得越高级越好,其实这是个误区。SQL Server 2022主要分为以下几个版本,每个版本用途和限制都不一样:
| 版本 | 费用 | 适用场景 | 核心限制 |
|---|---|---|---|
| Developer | 免费 | 开发、学习、测试 | 不可用于生产环境,除此之外功能和企业版基本一致 |
| Evaluation | 免费试用180天 | 短期评估、功能体验 | 到期后需要升级或重新安装 |
| Express | 免费 | 轻量应用、教学 | 最多4核、1GB内存、单库最大10GB |
| Standard | 付费 | 中小型生产环境 | 部分高级功能缺失,比如内存OLTP受限 |
| Enterprise | 付费 | 大型企业生产环境 | 功能最全,价格也最高 |
如果你是个人学习或者开发测试,我强烈建议直接装Developer版。原因是它免费、功能和企业版完全一致,唯一的限制是协议上不允许用于生产环境。很多网上的“SQL Server 2022密钥”其实都是针对Standard或Enterprise版的,普通人根本用不上,因为Developer版本身就不要密钥。搜索“sql server 2022 密钥”的人,多半是不知道这个免费版本的存在,或者被第三方网站的营销话术带偏了。
1.2 安装环境的硬性要求
SQL Server 2022对系统环境有硬性要求,装之前一定要先确认自己的机器符合条件,不然装到一半报错再来排查会很痛苦。
| 项目 | 最低要求 | 建议配置 |
|---|---|---|
| 处理器 | x64兼容,主频1.4GHz以上 | 4核及以上 |
| 内存 | 1GB | 8GB以上 |
| 磁盘空间 | 6GB | 系统盘预留20GB以上 |
| 操作系统 | Windows 10/11、Windows Server 2016/2019/2022 | Windows 11或Server 2022 |
| .NET Framework | 4.7.2及以上 | 系统自带或安装最新版 |
这里有两个点特别值得提醒。
第一,SQL Server 2022已经不支持32位操作系统和x86处理器了。如果你手上是一台很老的32位机器,直接放弃安装2022,老老实实装Express早期版本或者换个新机器。
第二,系统盘空间一定要留够。虽然官方写的“至少6GB”,但实际安装过程中还会释放安装缓存、更新补丁,系统盘如果只剩几个GB,很容易在最后阶段报0x80070643错误。我自己的习惯是C盘预留20GB以上再装数据库,免得装到一半磁盘写满。
1.3 安装包怎么获取与校验
标题写的是“附安装包”,但我不建议随便点开网上流传的压缩包和破解工具。SQL Server本身就提供完全免费的Developer版,微软官网直接就能下载,完全没有必要去用来路不明的“绿色安装包”或“激活工具”。那些东西要么捆绑全家桶,要么改系统设置,装完不仅SQL Server不一定能用,电脑还容易被弄得乱七八糟。
官方获取安装包的方式很简单,打开微软官网的SQL Server下载页面,选择“免费下载”里的Developer版本,或者选择“试用版”下载Evaluation版本。下载的时候有两种形式:
- 在线安装引导程序:一个几MB的小执行文件,运行时按需下载组件,适合网络好的情况。
- ISO完整镜像:一次性下载完整安装介质,适合放在U盘里离线安装,也可以挂载后直接运行setup.exe。
如果你手里已经有从别人那边拷贝过来的安装包,尤其是压缩包形式,建议先校验哈希值。在PowerShell里执行:
powershell复制Get-FileHash 你的文件路径 -Algorithm SHA256
然后去微软官网找对应文件的哈希值比对。这个步骤可以防止文件在传输过程中损坏,也能规避被二次打包的风险。虽然对新手来说多了一步,但确实值得养成习惯。
另外还有一个很多人会漏掉的东西:SSMS不需要在SQL Server安装包里装。SSMS全名是SQL Server Management Studio,是独立的图形管理工具,需要在微软官网单独搜索下载。2022对应的SSMS版本是20.x,安装过程也很简单,基本一路下一步。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安装全程实操:从双击安装包到安装完成
2.1 启动安装程序,选对安装类型
双击安装引导程序或setup.exe之后,会看到SQL Server安装中心,里面有“基本”、“自定义”、“下载媒体”三个入口。
“基本”安装方式本质上是一条快速通道,它会用默认配置直接装一个默认实例,功能只包含数据库引擎,不能修改数据目录,也不能选择身份验证模式。如果你只是临时跑个数据库体验一下,选Basic没问题。但从后面可维护性的角度考虑,我更推荐选“自定义”,只有这样才能完全控制安装过程。
选择“自定义”后,安装程序可能会搜索一下现有的安装位置,然后进入一个“选择媒体”的页面,默认情况下直接下一步就行。如果它提示需要检查更新,网络好就让它检查,网络不好可以跳过,不影响核心安装。
2.2 产品密钥与许可条款
这一步要根据你手里的版本类型来选择。如果你下载的是Developer版本,安装类型选项里会直接显示“Developer”字样的免费版本;如果是Evaluation版本,则显示“Evaluation”。选择对应项,然后勾选“我接受许可条款”即可。
有一种情况是企业采购了正版许可,手里有标准版或企业版的产品密钥,那么在这个页面选择“产品密钥”,输入25位密钥就可以了。安装完成后的版本就按照密钥对应的版本来。
这里还是要说一句,千万不要把网上找来的乱七八糟的密钥往这个框里填。轻则密钥无效无法继续,重则某些所谓“密钥工具”本身带有恶意代码。Developer版免费这个事实意味着你压根不需要为学习环境掏一分钱,也别给陌生人贡献你电脑的控制权。
2.3 功能选择:初学者只需要数据库引擎
进入功能选择页面后,会看到一个像目录树一样的列表。数据库引擎服务是默认必选项,这个必须保留。它下面还有几个子项,包括SQL Server复制、全文和语义提取搜索、Data Quality Services、PolyBase查询服务等,这些都是附加功能。
新手我的建议是:保持数据库引擎服务这一项,其他功能先不勾。原因很简单,Analysis Services(SSAS)、Reporting Services(SSRS)和Integration Services(SSIS)对应的是BI和数据仓库场景,它们安装后各自会多出独立服务,白白占内存和端口,初级学习和开发根本用不到。
以后如果真的需要做报表或者做ETL,可以重新运行安装程序,在现有实例上“添加功能”,不用推倒重来。安装程序本身支持对已经装好的实例做增量添加,这个设计还是比较人性化的。
2.4 实例配置:默认实例还是命名实例
实例这个概念,新手第一次接触可能有点懵。简单来说,一台物理机器上可以同时跑多个SQL Server数据库引擎,每个引擎就是一个“实例”,它们彼此独立,互不影响。
SQL Server 2022安装时,实例配置页会让你选:
- 默认实例:实例ID和实例名都是MSSQLSERVER
- 命名实例:比如SQL2022、MSSQLSERVER_TEST等
默认实例的默认连接方式是直接写机器名或localhost,而命名实例必须写成“机器名\实例名”这种格式。如果你装的是命名实例,SSMS里服务器名称不写完整,就会提示找不到服务器,这是新手最容易踩的坑之一。
对绝大多数人来说,安装时直接选默认实例最省心。除非你的机器上已经存在一个旧版本的默认实例,比如已经有了SQL Server 2019的默认实例,这时再装2022就需要使用命名实例,让两个版本共存。否则的话,不要自己折腾命名实例。
2.5 服务账户与排序规则
服务账户这个环节,通常新手不用做任何修改。SQL Server默认使用虚拟账户(NT Service\MSSQLSERVER)来运行数据库引擎,这种方式权限最小化,又能满足正常操作,不需要密码管理,适合绝大多数场景。
需要关心服务账户的情况有一种:如果以后SQL Server要访问共享目录、其他机器上的备份文件,或者要和域控环境集成,那才需要考虑单独指定一个域账户。对个人电脑和普通服务器来说,默认配置就够用。
排序规则默认是SQL_Latin1_General_CP1_CI_AS,后缀含义大概是“不区分大小写、区分重音”。如果确定系统的使用语言是中文,也可以改成Chinese_PRC_CI_AS,这样中文排序和比较更符合直觉。不过这步改起来影响面很大,一旦实例装好,之后想换排序规则就得重建系统数据库,相当麻烦。我的建议是,如果拿不准,就用默认配置,绝大多数情况下中文没问题。
2.6 数据库引擎配置:身份验证模式与SQL管理员
这个页面是整个安装过程中最关键的一页,配置错了会导致装完连不上、登录报错。
第一项是身份验证模式。Windows身份验证模式指只能使用Windows账号登录;混合模式指“Windows身份验证 + SQL Server身份验证”都可以。新手我强烈建议选择混合模式。原因很简单,很多软件、ConnectionStrings、Python的pyodbc、Java的JDBC,默认都倾向于使用SQL账号连接数据库,如果你只保留Windows身份验证,后面自己写程序连数据库时就会遇到各种坑。选择混合模式后,系统会要求设置sa账号的密码,sa是SQL Server内置的最高权限管理员账号。
第二项是指定SQL管理员。这里必须把当前Windows用户添加进去,或者添加一个确定的Windows账号。如果不添加,安装完成后你用Windows身份验证登录会直接报“用户 'xxx' 登录失败”。正确做法是点击“添加当前用户”按钮,把当前登录Windows的账户加进去。安装完成后,这个账号就拥有sysadmin权限。
sa密码这里多说一句:装在开发机上的数据库,很多人图省事把sa密码设成123456,结果一开远程端口就被各种扫描工具爆破。如果真的只是本机练习,密码至少给个大小写数字符号组合,后面不用的时候直接把sa禁用掉都行。
2.7 数据目录:把数据库放到非系统盘
在“数据库引擎配置”页面还有一个“数据目录”标签页,很多人从头到尾不会注意到它的存在。这里可以修改数据根目录、系统数据库目录、用户数据库目录、用户数据库日志目录和备份目录。
默认都在C盘的Program Files\Microsoft SQL Server下面。如果C盘空间不大,或者你希望重装系统时数据库文件还在,这个标签页就很有价值。我的习惯是改到D盘:
- 数据根目录:D:\SQLData
- 用户数据库目录:D:\SQLData\Data
- 用户数据库日志目录:D:\SQLData\Log
- 备份目录:D:\SQLData\Backup
目录带不带中文名都可以,但建议用纯英文路径,避免后面某些老程序或脚本兼容性出问题。安装程序会自动创建目录并配置权限,不需要你提前建好。如果你担心导致安装失败,那也可以不修改,后面再用存储过程移动数据库文件,但那就是给自己加工作了。
2.8 安装选项与进度
在最终点击“安装”之前,还有几个细节值得确认。
SQL Server 2022在安装过程中会默认勾选一个“Azure extension for SQL Server”的选项。这是用来把本地SQL Server接入Azure Arc的组件。如果你没有微软Azure相关需求,这里可以取消勾选,减少一个后台服务。
最终会进入“准备安装”页面,这里会列出所有配置项的汇总,包括实例名、功能、目录、服务账户等。我建议花几秒钟扫一眼,确认数据目录是不是真的改到了D盘,身份认证模式是不是混合模式,SQL管理员是不是添加了当前用户。确认没问题就点击“安装”,然后开始等待。
整个安装过程通常需要5到15分钟,取决于机器性能。看到最后的“功能安装成功”页面时,安装就算完成了。如果中途出现红色错误,先别关窗口,把错误代码截图或者抄下来,这是排查问题最直接的线索。
3. 安装后的必要操作:连接数据库与开启远程访问
3.1 确认服务是否正常运行
安装程序显示成功,不代表数据库服务就一定在正常运行。打开服务管理器(Win+R输入services.msc),找到SQL Server (MSSQLSERVER),确认状态是“正在运行”,启动类型是“自动”。
如果状态是“停止”,可以先手动启动试试。如果启动后立刻又停了,那多半是安装过程中有配置问题,比如数据目录权限不够、端口被占用、或者系统账户异常。这些在后面问题排查里会详细说。
3.2 用SSMS连接数据库
SSMS是微软官方提供的图形化管理工具,安装之后打开,会弹出一个“连接到服务器”对话框:
- 服务器类型:数据库引擎
- 服务器名称:localhost 或者机器名
- 身份验证:Windows身份验证(前提是你安装时添加了当前Windows用户)
然后点击“连接”。如果左侧对象资源管理器能够显示数据库、安全性、服务器对象、复制等节点,说明这次连接成功了。这一套流程跑通,SQL Server 2022就基本可以正常使用了。
如果你在安装时选择了混合身份验证,想用SQL账号试试,那就把身份验证改成“SQL Server身份验证”,登录名写sa,密码写安装时设置的密码,同样可以连接。注意在连接之前,服务器名称最好也先输入localhost,不要留空。
3.3 用sqlcmd命令行验证
SSMS是图形界面,但有时候排查问题用命令行反而更快。SQL Server默认自带sqlcmd工具。在cmd里输入:
cmd复制sqlcmd -S localhost -E
这里的-E表示使用Windows身份验证。连接成功后会出现sqlcmd的提示符,然后输入:
sql复制SELECT @@VERSION;
GO
如果能看到SQL Server 2022的版本信息,说明数据库引擎服务完全正常。输入EXIT可以退出sqlcmd。用命令行的好处是,即使SSMS界面有问题,你也能快速判断数据库引擎到底有没有起来。
3.4 开启远程访问:TCP/IP、防火墙、端口
绝大多数初学者装完SQL Server只用本机,不需要远程。但如果你以后要让同事、云服务器或者局域网另一台机器连过来,远程访问的配置就绕不开。
第一步,打开SQL Server配置管理器。在“SQL Server网络配置”下找到“MSSQLSERVER的协议”,右侧能看到Shared Memory、Named Pipes、TCP/IP三个协议。默认情况下TCP/IP是“已禁用”状态,把它右键改成“已启用”。
第二步,右键TCP/IP选择“属性”,在“IP 地址”标签页最下面找“IPAll”,可以设置TCP端口为1433。SQL Server默认就是1433,一般不用改。如果你不希望暴露默认端口,也可以改成别的端口,但连接时就要写成“IP,端口”的格式。
第三步,修改协议后必须重启SQL Server服务。回到配置管理器的“SQL Server服务”,右键MSSQLSERVER选择“重新启动”,等重启完成。
第四步,放行防火墙。控制面板 -> Windows Defender防火墙 -> 高级设置 -> 入站规则 -> 新建规则 -> 端口 -> TCP 1433 -> 允许连接。如果机器上有第三方防火墙软件,也要一并放行。
第五步,如果是云服务器,还要去云控制台的安全组里放行TCP 1433。
这些都做完后,在另一台机器上用SSMS连接时,服务器名称填目标机器的IP地址,端口默认1433,身份验证用SQL账号,就能连上了。整个链路下来,任何一个环节卡住都连不上,排查顺序就是:服务是否启动 -> TCP/IP是否启用 -> 端口是否监听 -> 防火墙是否放行 -> 安全组是否放行。
3.5 创建日常使用的登录名
安装完成后使用sa账号是最高的权限,也是风险最大的。如果你打算长期用这个数据库写代码,我建议立刻创建一个日常用的登录账号。
在SSMS中展开“安全性” -> “登录名”,右键新建登录名,创建一个dev_user之类的SQL账号。密码要够复杂,默认数据库可以先选master,权限给public即可。然后在你实际要用的数据库下,比如TestDB,找到“安全性”->“用户”,把dev_user映射进去,并赋予db_datareader和db_datawriter角色,如果需要执行存储过程,再给db_executor或更细的权限。
这样即使某天这个账号被攻破,也只能读写你授权的那几个库,不会把整个实例搞崩。sa账号要么改成一个超长随机密码,要么直接禁用,本机学习用的话也可以暂时不管,但一旦开了远程端口,“禁用sa”这个动作就非常必要了。
4. 常见安装问题与排查技巧实录
4.1 安装程序报0x80070643
这个错误代码可以说是SQL Server安装中高频出现的一个错误。遇到它先别慌,通常是下面几个原因:
- 系统盘空间不足
- 杀毒软件或者安全卫士拦截了安装程序对服务的创建
- Windows Installer服务异常
- 之前安装失败的残留程序还在占用安装锁
排查时按顺序处理。先清理系统盘空间,留出足够的余量;然后临时退出杀毒软件、安全卫士之类;再检查Windows Installer服务是否正常启动,可以在services.msc里找到Windows Installer,右键启动;最后如果之前装过失败的SQL Server,把相关残留卸载干净再重试。
4.2 提示需要重启计算机,但重启后仍提示
安装程序检测到系统注册表里有PendingFileRenameOperations键值,就会一直提示“需要重启计算机”。这个键在注册表位置:
text复制HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
正常情况下,重启后这个键值会被系统清除。如果重启后仍然提示,说明某个文件永远在等待重命名,此时可以手动进注册表,找到PendingFileRenameOperations,把这个值删掉,然后重新运行安装程序。
操作注册表前一定要先确认没有其他待完成的重命名操作,并备份注册表。这个操作对老手来说很常规,新手执行前最好多搜索确认一下,不然误删系统关键键值还是挺麻烦的。
4.3 SQL Server服务启动失败或启动后立刻停止
服务能装上去但启动不了,最常见的有两个原因。
一是数据目录权限不对。安装后如果手动移动过数据目录,或者安装时自定义到了某个特殊目录,可能导致服务账户无法访问。可以在Windows事件查看器中查看“Windows日志”->“应用程序”下的错误信息,如果是权限类报错,右键数据目录“属性”->“安全”,确认NT Service\MSSQLSERVER账户拥有完全控制权限。二是端口冲突。如果1433端口被其他程序占用,服务同样起不来,可以用netstat -ano | findstr 1433查看端口占用情况。
4.4 用sa登录报18456错误
错误18456是登录失败,原因一般集中在几个方向:
- sa密码输错
- sa账号被禁用
- 服务器没有启用混合身份验证模式
先用Windows身份验证连上服务器,右键服务器名选择“属性”,在“安全性”页签中确认选择的是“SQL Server 和 Windows 身份验证模式”。然后展开“安全性”->“登录名”->sa的属性,检查“状态”页签里是不是“已启用”,密码是否需要重置。都改完之后,禁用再重新启用一次或者重启服务,让配置生效。
4.5 远程连接报网络相关错误(40、26、10061等)
这类错误基本可以锁定为网络层问题,报错提示里通常会出现“在建立与服务器的连接时出错”或者“网络相关或特定实例的错误”。排查顺序:
- SQL Server配置管理器中TCP/IP是否启用
- 修改协议后是否重启了SQL Server服务
- 本机telnet IP 1433是否能通
- Windows防火墙是否放行1433
- 云服务器安全组是否放行1433
- 服务器名称是否写成了“IP\实例名”的格式
我遇到过很多次“远程连不上”的问题,最后发现是装完TCP/IP后忘了重启服务,改完配置却没有应用。所以每次改完网络配置,第一反应就是重启SQL Server服务,这个动作至少能排除一半故障。
4.6 旧版本卸载残留导致新装失败
如果机器上之前装过SQL Server 2014、2017、2019等老版本,后来卸载得不够彻底,再装2022时经常碰到各种莫名的问题。
清理残留的思路是:先从控制面板或系统“应用”列表把所有SQL Server相关组件卸载干净,然后手动删除Program Files\Microsoft SQL Server和Program Files (x86)\Microsoft SQL Server目录下残留内容,最后用注册表编辑器删除HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server相关键。
这些操作有一定风险,手动删注册表之前务必备份。如果你不确定怎么操作,用一个更稳妥的方案:先把需要的数据库备份文件导出,然后重新安装操作系统,再装最新版SQL Server。虽然听起来粗暴,但比花一整天排查卸载残留的坑要高效得多。
5. SQL Server 2022的几个亮点值得了解
5.1 智能查询处理增强
SQL Server 2022在智能查询处理方面做了不少增强,比如参数相关的计划优化、行存储表上的列存储索引、内存Grant反馈优化等。翻译成大白话就是:数据库在生成执行计划时更加“聪明”了,以前需要DBA手动优化的部分场景,现在系统能自动处理。对新手来说,这意味着你不需要一上来就学一大堆性能调优知识,默认配置就能跑出不错的性能。
5.2 Ledger数字账本表
这是2022版本中一个比较有代表性的新功能。你可以把某些表建成“账本表”,系统会记录对这张表的每一次修改,并保留历史数据。由于采用了哈希链校验机制,理论上数据一旦被篡改就能被检测出来。这套机制特别适合审计、财务、合规类系统。如果你以后要做一个需要操作日志不可篡改的功能,Ledger表会是一个很好的现成方案。
5.3 T-SQL新函数和JSON能力
开发方面,SQL Server 2022增加了一些挺实用的新函数。比如DATETRUNC可以快速把日期时间截断到指定精度,GENERATE_SERIES可以生成数字序列,APPROX_PERCENTILE_CONT用于大数据量下的近似百分位计算,语法上还支持了正则表达式。与此同时,JSON处理能力进一步增强,用标准SQL操作JSON数据比以前方便很多。
5.4 与Azure生态的集成
SQL Server 2022支持通过Azure Synapse Link把本地数据库的数据实时同步到云端分析服务,也支持Azure Arc的托管管理。不过这些能力对普通个人用户和学习者来说暂时还用不上,知道有这么回事就可以了,千万不要在安装时因为好奇而去额外勾选相关组件,增加无谓的资源消耗。
装完SQL Server 2022之后,我一般会顺手做三件事:第一,把sa的密码改成足够复杂的随机密码,然后新建一个每日开发用的低权限账号,日常连接都用这个账号;第二,打开配置管理器看一眼TCP/IP协议,如果没有远程连接需求就保持禁用状态,绝对不主动暴露1433端口;第三,把备份目录设置到系统盘之外,以后做备份时不会把C盘塞满。这几件事加起来用不了五分钟,但能让整个环境安全很多。SQL Server的安装本身并不难,难的是搞清楚每一步在干什么、为什么这么干。希望这篇教程能帮你少走一些弯路,一次就把环境装好。
