1. 安装前准备:版本选择与系统检查
1.1 SQL Server 2022有哪些版本,怎么选?
大部分人打开微软下载页面就懵了,一堆版本名摆在那儿,什么Enterprise、Standard、Developer、Express,看着挺类似,实际定位完全不同。我先给一个最简单的判断方法:如果你是拿来学习、开发、做个人项目,直接选Developer(开发者版),它是免费的,功能上基本跟企业版一样全,唯一的限制是不能用于生产环境。如果你只是需要一个轻量级数据库,存点小数据,对并发和高级功能没要求,那Express版也够用,它能用10GB的数据库大小限制,日常练习绰绰有余。如果是公司业务正式上生产,那才需要考虑Standard或者Enterprise,这俩是需要购买许可的,但现在也有180天的评估版可以用,适合我们先在测试环境里验证功能。
从实际安装比例来看,90%的教程和自学场景都在装Developer版。这也合理,毕竟SQL Server 2022的核心功能,像Intelligent Query Processing、内存中OLTP、Ledger Table这些,在Developer里都能体验到,不需要额外花钱。所以这篇教程的主体也以Developer版为准,Express和虚拟机的差异点我会单独放到后面讲。
1.2 系统配置要求与注意事项
安装数据库不是装个普通软件,你至少得给它一个相对干净的环境。SQL Server 2022官方要求的是64位系统,Windows 10/11或者Windows Server 2019/2022都可以。内存方面,最低是2GB(Express版可以更低),但我强烈建议开发机至少4GB起步,如果同时开SSMS和VS Code,内存低于8GB会让你很痛苦。磁盘空间,完整安装一般在6GB到10GB之间,这个是可以接受的,但要注意你后面建的库、日志文件、备份文件都会占空间,所以系统盘别塞太满。
我踩过的坑是:很多人直接在刚升级完或者补丁没打全的系统上装,结果安装到一半报错,提示缺少某个Windows功能或者VC++运行库。建议装之前先打开Windows Update把系统补丁打全,再装一下最新的.NET Framework和Visual C++ Redistributable。虽然安装向导会自动处理一部分,但手动装一遍能省很多排查时间。
另外一个容易忽略的点:安装时最好关闭杀毒软件和Defender的实时防护。不是说SQL Server有毒,而是安装过程会释放很多临时文件、注册服务、修改防火墙规则,杀毒软件可能会拦掉一部分操作,导致安装日志那堆看不懂的错误。装完再重新打开防护就好。
1.3 下载安装介质:官方渠道与文件说明
下载SQL Server 2022,最稳的路径是去微软官方站点。你在搜索引擎搜“SQL Server 2022 Download”,第一条通常是官方的下载页面。进去之后,你会看到几个不同的下载方式:一个是直接下载安装程序(SQLServer2022-x64-ENU.exe或中文版),一个是下载ISO镜像。我建议下载ISO镜像,因为如果你需要在多台机器上装,或者要在虚拟机里装,ISO可以挂载后用,也可以长期保留做离线安装介质。直接下载安装器的话,它往往只有几十MB,安装时还会联网去拉取组件,如果网络不稳定就容易中断。
下载页面里还有几个选项需要留意,它会让你选择“基本安装”“自定义安装”“下载媒体”。选择“下载媒体”可以拿到完整的ISO或安装包。语言选择Chinese (Simplified)就有简体中文版,如果你英文还行,也可以用英文版,但是以后查日志、查报错信息时,中文版的报错文本有时反而不太好对应到官方文档,所以我个人更喜欢英文版。不过这篇教程里我会用中文界面截图式地讲解选项,概念是通用的。
2. 完整安装流程逐步图解
2.1 以Developer版本为例的安装向导关键选项
下载完成拿到安装程序后,建议右键选择“以管理员身份运行”。这一步很多人会跳过,但数据库安装需要修改系统服务、写入Program Files目录、设置注册表,权限不够时后面会冒出各种权限不足的错误。运行后,如果出现在新版中常见的“是否允许此应用对设备进行更改”提示,点“是”。
安装向导欢迎页有几个选项:计划、安装、维护、工具、资源、高级、选项。第一次装,直接点左侧的“安装”,然后选择“全新SQL Server独立安装或向现有安装添加功能”。这里不要选“从另一个实例添加功能”,那是给升级场景用的。
接下来会让你输入产品密钥。请注意,这里有一个常见的误区:Developer版不需要输入密钥,你只需要在版本选择下拉框里选“Developer”,然后勾选“接受许可条款”即可。Enterprise评估版可以选择有180天试用,也不需要立即输入密钥。网上那些到处传的“2022企业版永久密钥”多半是不可靠的,正规做法就是通过上面两种免费途径先装好。没必要为了一个企业版的永久许可去用来路不明的密钥,万一遇到后门,你的数据环境风险就大了。
2.2 功能选择与实例配置
选完版本,会进入“功能选择”页面。这里默认会勾选“数据库引擎服务”和“客户端工具连接”。如果你是日常使用和学习,建议勾上这几个:数据库引擎服务(核心)、SQL Server复制、全文和语义搜索(做文本搜索练习用)、Integration Services(做数据迁移,可选)、Analysis Services和Reporting Services(BI方向需要)。不过也要看你磁盘空间和实际用途。我的经验是:初次安装只保留“数据库引擎服务”和“共享功能”里的基础项,其他功能后面在“安装程序”里可以再添加。这样最干净,避免装了一大堆平时用不上的服务,白白占用后台内存。
点“下一步”后进入“实例配置”。这里有两个概念必须搞明白:默认实例 和命名实例。默认实例的连接地址就是服务器名称,比如本机就用localhost或.访问;命名实例则是计算机名\实例名。对于个人学习和开发,选默认实例就够了,除非你机器上还要装多个不同版本的SQL Server,或者有隔离需求。默认实例建议就用MSSQLSERVER,这是最常规的命名,以后在网上查问题,别人给你的连接字符串大概率也是基于这个默认实例写的。
2.3 服务账户与排序规则设置
配置服务账户时,安装向导会让你为SQL Server相关的服务选择启动账户。最省心的方式就是选“提供默认实例的旧配置”:使用虚拟账户或内置网络服务账户。普通用户在安装时不用去手动指定一个域账户或管理员账户,否则后面密码变更了,服务就起不来了。如果你已经有个专用的Windows账户用来跑数据库服务,也可以选“指定账户”,但是密码要记住,以后改密码很麻烦。
排序规则一般保持默认。中文环境下你会发现默认排序规则是SQL_Latin1_General_CP1_CI_AS,很多人以为要用中文排序规则,其实完全没必要。如果你的系统是中文,安装完成后的中文存储和查询都没问题。除非你有特殊的多语言排序需求,否则不要动。动排序规则是一个很有“传染性”的设置,后期更改非常痛苦,表字段的排序规则都得跟着改。
2.4 数据库引擎配置:身份验证模式与SA密码
最关键的一步在这里。位于“数据库引擎配置”页面的“身份验证模式”部分,你需要选择“Windows身份验证模式”还是“混合模式”。
很多新手想省事,直接选Windows身份验证,然后装完发现别的电脑连不上,或者用程序员常用的sa账号登录失败。我的建议是:优先选择“混合模式”,因为开发过程中你大概率会用到SQL Server身份验证,尤其是写连接字符串时,Server=localhost;User ID=sa;Password=****这种方式最通用。选了混合模式后,它会要求你设置sa账号的密码,不要用太简单的密码,至少包含大小写字母和数字,长度8位以上。这个密码后面可以改,但初始密码太弱,某些安全扫描工具会直接警告你。
同一页有个“指定SQL Server管理员”按钮,你需要添加当前Windows用户作为sysadmin固定服务器角色成员,默认会把你安装时的登录用户加进去,但最好确认一下。如果你漏掉了这一步,装完后你Windows账号可能没有权限管理数据库。你可以点“添加当前用户”按钮补上。
接下来还有“数据目录”和“TempDB”两个子页,一般保持默认即可。如果你有多个物理磁盘,可以把数据目录和日志目录分开放,这样性能和故障恢复都会好一些。TempDB默认是多个数据文件,也是可以的,不用折腾。
全部确认后,点击“下一步”,到“准备安装”页面会列出将安装的功能列表,检查无误后点“安装”,这时候就可以去泡杯茶了。整个过程一般在5到15分钟,取决于你的机器性能。
3. 安装后的关键配置与验证
3.1 连接数据库的三种方式:SSMS、sqlcmd、Azure Data Studio
安装完成后,SQL Server 2022本身不会自动安装图形化管理工具(除非你在功能选择里勾选了“客户端工具”),所以你要么去下载SSMS,要么先用命令行工具验证一下。我最常用也最推荐新手使用的方法是命令行快速验证:按Win+R,输入cmd(不要用管理员也可以),然后在命令行里输入:
sqlcmd -S localhost -E这里的-S是指定服务器实例名,-E是用Windows身份验证。如果你的默认实例是MSSQLSERVER,用localhost就能连上。如果出现1>这样的提示符,恭喜你,数据库引擎已经正常工作了。输入SELECT @@VERSION,再输入GO执行,就能看到版本信息。退出用EXIT。
如果想用图形界面,我建议下载SQL Server Management Studio(简称SSMS),它是微软官方免费的。装好后,连接对话框里服务器名称填localhost,身份验证选“Windows身份验证”,点“连接”,左侧对象资源管理器里能看到数据库、安全性、服务器对象等树形节点,说明连接成功。注意,连接并不等同于能执行所有操作,后面的权限问题一会在常见问题里讲。
第三个工具是Azure Data Studio,跨平台、轻量,但是它的功能偏开发,管理调度任务不如SSMS顺手。个人建议桌面环境还是SSMS为主,Azure Data Studio可以作为写SQL和图表展示时的补充。
3.2 启用TCP/IP与配置防火墙
如果你只在本机用,不怎么需要配置网络。但是很多情况下你需要让局域网里的同事连一下你的数据库,或者你在虚拟机里装好了,希望从物理机连进去。那第一个要改的是“SQL Server网络配置”。打开“SQL Server配置管理器”(开始菜单里搜索),在“SQL Server网络配置”下找到你实例的协议,右键点击TCP/IP,选择“启用”。
这里有个很容易踩的坑:启用TCP/IP后,默认端口是1433,如果你机器上装了多个SQL Server实例,得确保端口不冲突。另外,启用之后必须重启SQL Server服务才生效。在配置管理器左侧“SQL Server服务”节点,右键点击SQL Server (MSSQLSERVER),选择“重新启动”。很多人配完发现还是连不上,就是忘了这个重启步骤。
第二件事是防火墙。Windows防火墙默认会拦截来自外部的1433端口连接。如果你不想关防火墙(建议别关),可以手动放行。命令可以用管理员PowerShell执行:
New-NetFirewallRule -DisplayName "SQL Server 1433" -Direction Inbound -Protocol TCP -LocalPort 1433 -Action Allow如果你用的阿里云、腾讯云等云服务器,仅云端放开还不够,还要在安全组里也放行1433的入方向规则。这两个地方都开了,你才能让别人通过你的IP地址,1433或tcp:你的IP地址的方式连进来。
3.3 关闭密码策略的坑
热词里有人搜“sql server 2022 关闭密码策略”,这里提醒一下:SQL Server自己没有“关闭密码策略”的开关。密码策略是操作系统层面的,它强制SQL Server的sa等账号必须符合Windows的密码复杂性要求。所以你可能会遇到这种情况:明明密码长度够,规则也满足,但设置时还是报错,提示不符合密码策略。
解决办法是去Windows本地安全策略里调整。在命令行里运行secpol.msc打开本地安全策略,依次找到“账户策略”->“密码策略”,把“密码必须满足复杂性要求”设为“已禁用”,把“密码长度最小值”设为0,然后确定。再回到SQL Server里修改密码,就能设置简单密码了。但是我不推荐你真的去设置简单密码,哪怕只是本地开发库,被扫描工具扫到弱口令也是尴尬事。这个操作更多是在测试环境需要自动化脚本反复建账号时才会用到。
3.4 安装SQL Server Management Studio (SSMS)
SSMS是独立安装包,不随SQL Server一起更新。你去微软官网搜“SSMS download”,下载最新的SSMS稳定版,比如20.x。下载后一路Next安装即可,安装时长大概1到2分钟。装好后,打开SSMS,第一次会让你选择连接目标,服务器类型默认是“数据库引擎”,服务器名称填localhost,身份验证选“Windows身份验证”,然后点“连接”。
有些人的SQL Server版本是2022,SSMS却还在用18.x,这也不会有太大问题,不过新版SSMS对2022的新功能支持更好,比如Ledger表、Intelligent Query Processing的一些查询提示。所以我建议直接装最新版。SSMS本身的界面很厚重,但对新手来说信息一目了然,学习时就别嫌它慢,后面熟悉了可以换Azure Data Studio。
4. 常见安装问题与排查技巧
4.1 安装失败:提示需要重启计算机怎么办
很多人在安装向导还没走到一半,就遇到一个弹窗:“重启计算机后请重新运行安装程序”,或者直接提示“以前的某个程序安装已在计算机上创建挂起的文件操作”。这大概率是注册表里有个PendingFileRenameOperations键导致的,系统认为还有文件操作没完成,阻止你安装新程序。
解决办法有两个。第一,如果能重启就重启一次,把原来的文件操作处理完。第二,如果重启完还是不行,就需要手动清理注册表。按下Win+R输入regedit,导航到:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager右侧找到PendingFileRenameOperations,右键删除它(或者备份后删除)。如果你对注册表不熟,删除前先导出保存一份,这样万一系统出了问题还能恢复。删除后重新运行安装程序,一般就不会再卡在这个提示了。
4.2 无法连接到本机数据库实例的服务状态排查
另一种高频故障是装完了但服务没启动,连接时SSMS报“服务器在尝试连接时出错”或者“找不到服务器”。先别急着重装,用组合键Win+R输入services.msc打开服务管理器,找到所有名字里带SQL Server的服务。最关键的是SQL Server (MSSQLSERVER)这个服务,看看它的状态是不是“正在运行”。如果状态是“已停止”,右键启动它。启动时报错的话,可以双击进去看“常规”选项卡里的“服务状态”和“可执行文件路径”,有时是文件缺失或权限问题。
如果服务一直停在“正在启动”,那八成是账户密码过期或者实例配置有问题。你可以先试试用本地系统账户启动服务:在服务属性的“登录”选项卡,选“本地系统账户”,确定后再启动。这只是临时的排查手段,能启动说明是之前指定的账户有问题,后面再改回专用账户。
还有一种隐蔽情况:你同一台机器上装了多个SQL Server实例,端口冲突或者实例名记错了。比如默认实例本该用localhost连,你却在服务里看到实例名是SQLEXPRESS,那连接字符串就要写成localhost\SQLEXPRESS。所以要注意看服务名那一列括号里的内容。
4.3 SA登录失败的常见原因与修复方法
sa账号登录失败可以说是SQL Server新手遇到最多的报错之一。报错信息通常有两种:一种是“用户'sa'登录失败”,另一种是“无法连接到 **\MSSQLSERVER,错误: 18456”。前者可能是密码错误或账号被禁用,后者往往是身份验证模式没配对。
如果你确定密码没错,但仍然登录失败,先检查sa账号是否被禁用。在SSMS里用Windows身份验证连上后,展开“安全性”->“登录名”,右键sa,属性里确认“登录”状态是“启用”。默认安装时sa是禁用的,即使你设置了混合模式密码,也要手动启用它。
另外一种情况是你安装时只选了Windows身份验证,后面想改用sa登录。那需要用Windows账号连上后在数据库实例属性里把“服务器身份验证”改成“SQL Server和Windows身份验证模式”,改完重启服务。这个操作记住:改完一定要重启,否则哪怕选项变了,旧连接还在,新连接也可能被拒。
如果错误码是18456,后面还会有状态数字。比如状态1表示不提供基本信息,状态8表示密码不匹配,状态9表示用户不存在,状态11表示账号被锁定。你可以通过查看SQL Server错误日志拿到详细状态:在SSMS里,右键实例,选择“活动监视器”不行,要到“管理”->“SQL Server日志”中看当前的日志,找带18456的那条记录,后面会跟着状态码。有了状态码再去搜解决方案,会精准很多。
4.4 卸载残留与彻底清理方法
如果你想卸掉重装,或者因为安装失败想清干净再来,最忌讳的就是直接从“控制面板”里卸载了事。简单地卸载会在系统里留下服务、注册表项、文件夹和旧数据,重装时可能出现各种匪夷所思的问题。
推荐的清理顺序是:
- 先在控制面板的“程序和功能”里卸载所有SQL Server相关的程序,包括SQL Server本机、SSMS等。按Ctrl+F搜索“SQL”,把搜到的条目挨个卸载。
- 卸载过程中如果提示“即将卸载,是否保存数据库等”,建议先备份数据到外部目录,否则卸载会丢失库文件。
- 卸载完成后,删除数据目录。默认路径是
C:\Program Files\Microsoft SQL Server\和C:\Program Files (x86)\Microsoft SQL Server\。如果你装的时候自定义了目录,也要一并删除。 - 再用注册表编辑器清理几个关键路径下的SQL Server键:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Management Studio。不知道从哪下手的话,直接搜索“SQL Server”相关键值,但注意别把其他软件注册表也删了,建议只操作上述两个路径。 - 最后再检查
C:\Program Files\Microsoft SQL Server目录是否还有残留,有就删掉。
这套操作弄完,再重新安装,通常就能一次成功。如果你舍不得数据,可以在卸载前用Detach Database把数据库文件复制出来,重新安装后再附加进去。
5. Express版与其他场景补充说明
5.1 Express版安装特殊注意事项
Express版的全称是SQL Server 2022 Express,它的安装包小而精简,常用于学习和小型应用。下载时注意它跟Developer版不是一个文件,搜索“SQL Server 2022 Express download”可以找到“SQLEXPR_x64_ENU.exe”这样的文件。Express版最明显的限制是单实例最多利用1GB内存、数据库最大10GB,这对很多练习场景其实是足够的。
Express版安装时的功能和Developer版类似,但配置页面会少一些高级功能,比如Analysis Services一般不包含。另外,Express版默认实例名往往不是MSSQLSERVER,而是SQLEXPRESS,这在连接的时候要特别小心。如果你看到服务名是“SQL Server (SQLEXPRESS)”,那连接字符串应该写成localhost\SQLEXPRESS,用sqlcmd -S localhost\SQLEXPRESS -E去验证。
Express版还有一个坑:它默认没有开启TCP/IP,而且防火墙拦截规则也可能单独存在。如果你从别的机器连不上,还是按前面第3.2节的方法,先启用TCP/IP,再放行端口,不过实例端口可能是动态端口,比较麻烦。最好在配置管理器里把TCP/IP的“IPALL”端口固定为1433,然后重启服务。
5.2 在虚拟机上安装SQL Server的问题
很多人喜欢用VMware装一个Windows Server或者Windows 11虚拟机,然后在里面安装SQL Server 2022。这个思路没问题,但有几个细节要提前考虑到。
第一,虚拟机内存分配。SQL Server启动后会把大部分可用内存据为己用(默认内存增长不设上限),所以给Windows虚拟机至少4GB内存,否则虚拟机本身都卡得不行。第二,数据库文件的IO性能。机械硬盘上跑虚拟机再用数据库,性能会很感人。有条件就放在SSD上。第三,快照功能与数据库一致性。虚拟机开着快照状态下做数据库操作,在某些场景里恢复快照会导致数据库文件不一致,最好是先关闭数据库服务或做事务一致性备份再打快照。
如果你的虚拟机里装的是Linux,比如Ubuntu Server,那要选SQL Server for Linux版本。安装方式不是用EXE,而是通过sqlservr包。比如Ubuntu上先加微软仓库,再sudo apt-get install mssql-server,跑sudo /opt/mssql/bin/mssql-conf setup配置版本号和sa密码。之后用systemctl status mssql-server检查服务状态。步骤不复杂,只是命令行的方式让很多Windows习惯的人不适应,但原理是一样的。
5.3 本机端口占用与多实例共存
当你在同一台机器上装了两个SQL Server实例时,建议不要都用默认端口。默认实例监听1433,命名实例会用动态端口。如果开发中碰到端口冲突,可以打开配置管理器,在TCP/IP的“IPALL”里把端口改成比如14333,然后防火墙放行这个端口。连接的时候,服务器名称填服务器IP,14333,注意是英文逗号。这个知识在容器化、微服务多实例场景下也很有用。
多实例共存的另一个问题是服务名要分清楚。每个实例都有自己的服务名称,比如SQL Server (MSSQLSERVER)和SQL Server (SQLEXPRESS)。操作其中一个实例的服务时,别把另一个停了。配置管理器里有明确的“SQL Server服务”列表,按括号里的实例名区分即可。
6. 本地数据库日常维护与常用功能补充
6.1 备份与恢复入门
装完能用只是第一步,真正让你安心的操作是备份。在SSMS中,右键目标数据库,选择“任务”>“备份”,在备份类型里选“完整”,然后点击“添加”选一个备份文件路径,比如C:\backup\mydb.bak。也可以直接用命令行:
BACKUP DATABASE MyDatabase TO DISK = 'C:\backup\mydb.bak' WITH INIT;还原的时候,右键“数据库”>“还原数据库”,源设备选择这个.bak文件即可。有个细节:还原时如果目标库已经存在,可能会提示数据库正在使用,你可以先执行ALTER DATABASE MyDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE;,还原后再设回多用户。命令行方式更直接:
RESTORE DATABASE MyDatabase FROM DISK = 'C:\backup\mydb.bak' WITH REPLACE, RECOVERY;建议养成习惯:大型改动之前做一个全备份,平时做差异备份或日志备份。对于本地学习环境,每周全备一次就够了。
6.2 SQL Server 2022的几个新特性,装完不妨试试
装好2022之后,除了版本号变了,功能上值得一试的包括:
- Ledger Table(账本表):用于区块链式的防篡改审计,对金融场景比较有意义。你可以创建一张表,自动记录更新历史,如果有人非法篡改,历史记录与当前值不一致会被发现。创建时用
CREATE TABLE ... WITH (LEDGER = ON)。 - Intelligent Query Processing增强:2022加入了
Parameter Sensitive Plan Optimization,某些查询的缓存计划更智能,但这不直接影响普通用户操作,更多是性能上的提升。 - JSON功能增强:SQL Server 2022的JSON函数完善了不少,可以用
OPENJSON处理JSON数组,同时在查询时返回JSON格式。 DATETRUNC函数:这个新增函数可以方便地按年、月、日等粒度截断时间,比手动CONVERT或CAST直观很多。比如SELECT DATETRUNC(month, GetDate())能拿到本月第一天。
这些功能对学习来说,你只需要知道它们存在就够了。但如果你在面试或工作中被问到SQL Server 2022相比2019的新特色,这些点能给你不少谈资。
6.3 学习路径与资源推荐
装好SQL Server 2022之后,接下来的学习路径我建议按这个顺序走:先练T-SQL基础,包括SELECT查询、JOIN、聚合、子查询;再学表和索引的设计,理解主键、外键、约束;然后接触存储过程、视图、事务和锁机制;最后再去看性能调优和备份恢复。不要一上来就研究高可用和复制,那需要比较深的基础。
资源方面,微软官方文档仍然是最全的,搜索“SQL Server 2022 documentation”,里面的版本说明、配置参数、示例代码都够权威。视频教程像“SQL Server入门到精通”也很多,挑一个口碑好的跟着做就行。练习数据可以用微软官方的AdventureWorks示例数据库,去GitHub下载对应2022版的备份文件,还原后就可以在上面练手了。这一步也顺便练了前面讲的“还原数据库”操作,一举两得。
我个人的一个建议:不要光跟着教程打代码,最好是给自己设计一个小场景,比如做一个“个人图书管理”或者“电影清单”的小系统,从建表、插入数据到查询排行,再到刷一张报表出来。一个完整的项目走下来,比你看十篇教程都记得牢固。SQL Server 2022的安装只是一个非常小的起点,真正值钱的东西在安装之后每一天的练习和踩坑里。等你把库建起来、数据跑起来、报表拉出来,再回头看今天这次安装,就能体会到这一步铺得有多重要。