ARTICLE DETAIL

资讯详情

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

SQL Server 2022 保姆级安装指南:从版本选择到连接排障

SQL Server 2022 保姆级安装指南:从版本选择到连接排障 SQL Server 2022 这个版本出来也有一阵子了但每次帮同事或者朋友处理数据库问题还是会碰到很多人栽在安装这一关上。有的卡在版本选择有的装完连不上本机实例更常见的是装到一半因为某个系统组件缺失直接回滚只能从头再来。我这些年装过的 SQL Server 版本从 2008 R2 一路到 2022Windows 环境和 Linux 环境都折腾过不少今天这篇就把 SQL Server 2022 的完整安装过程、关键配置选项、安装后的连接验证和常见排障一次讲清楚。你只要跟着操作不需要额外翻别的文档就能把一套能正常开发、测试的实例跑起来。1. SQL Server 2022 是什么又为什么值得专门讲一遍安装SQL Server 2022 是微软在 2022 年 11 月正式发布的重大版本核心版本号是 16.x对应的技术栈和上一代 SQL Server 201915.x有比较明显的断层。很多老项目里跑的 2012、2014、2016想升级到 2022 的话跨的版本幅度很大安装行为和默认配置也变了不少。所以哪怕你以前给旧版本装过很多次换到 2022 也不能直接闭眼下一步有几个新增的默认设置和依赖项会直接影响你后续的使用方式。对普通开发者和数据库管理员来说2022 版本真正值得关注的是这几个变化。第一是引入了对 S3 兼容对象存储的备份支持备份文件可以写到对象存储这在以前只能写本地磁盘或网络共享对私有化部署和云环境的吸引力都比较明显。第二是查询层面的增强比如新的 JSON 函数、T-SQL 的字符串处理改进、以及 Query Store 的增强提示能力这意味着你可以用更简单的代码实现以前要绕道拼接的场景。第三是安全合规相关的功能像 Always On 可用性组支持了跨平台还有权限管理上的预设角色让运维侧的安全策略配置更省事。这篇安装教程到底适合谁我按经验分成三类人。刚入门的开发者第一次在自己电脑上装数据库希望有一个能跑通 SQL、做课程设计或者练习后端开发的环境运维工程师需要在 Windows Server 上为业务系统搭建正式数据库实例要考虑服务账户、防火墙、远程连接等细节还有一些是只为了临时复现问题、装个测试环境的老手可以直接跳到后面常见问题的部分看避坑记录。如果你是这三类中的任何一类这套流程都能直接用。我要先说清楚一个原则安装包只认微软官方渠道。SQL Server 2022 的 Developer 版本本身是免费的功能上和 Enterprise 几乎一样只是授权上不能用于正式生产。网上那些“特别版”“绿色免安装版”之类的分发不仅没必要而且很容易夹带私货你折腾的时间成本远比去官网点几下高得多。下面的所有步骤都是基于官方正式版安装介质实测的我建议你的起点也放在官方下载页。2. 安装前必须做的三个选择版本、系统和安装包来源2.1 Developer、Express、Standard、Enterprise到底该装哪个我以前见过不少人在下载页面就迷路了。微软的下载页把 SQL Server 2022 分成好几个版本每个版本下面还有一堆链接很多人直接选了 Express装完才发现有些功能没有。版本选择的逻辑其实很清楚我整理成了一张表版本授权性质典型场景主要限制Developer免费不可用于生产个人学习、开发测试、课程作业功能等同 Enterprise但授权不允许正式上线Express免费可用于生产轻量应用、教学、小工具的后端库每个数据库上限 10GB内存限制约 1410MB只能装一个实例Standard商业授权中小规模业务系统部分高可用和性能特性被裁剪Enterprise商业授权大型企业、高可用、数据仓库授权成本高按核心数收费对个人电脑上的开发和学习来说我最推荐 Developer。很多人一看到“Express 免费”就选 Express但 Express 的限制在实际使用中非常讨人厌单个数据库到 10GB 就顶住了内存限制让你在做一些大数据量查询时明显感觉到性能瓶颈而且高级功能像分区表、列存储索引、数据库快照这些全部缺失。你做开发练习的时候这些功能正好是面试和工作中经常要碰的最后还得重装成 Developer浪费一次时间。如果公司要搭生产环境Standard 能覆盖绝大多数内部业务系统的需求。只有当你确实需要 Always On 可用性组、在线索引重建、企业级安全特性这些功能时才需要上 Enterprise。还有一点容易被忽略Express 和 LocalDB 是两回事LocalDB 是更轻量的嵌入式实例连接串和运维方式和完整的 SQL Server 不一样别拿 LocalDB 当正式学习环境不然你后面写连接字符串时会遇到一堆莫名其妙的问题。2.2 硬件、系统和环境准备这些细节直接影响成败SQL Server 2022 的官方最低要求不高但那些“最低要求”真照做的话安装体验会很难受。我按实际场景给出一套更现实的建议CPUx64 架构2 核起步。虚拟机环境建议给 4 核编译和备份操作会明显更快。内存最低 2GB但安装向导和数据库引擎同时跑起来4GB 以下会非常卡。虚拟机上建议 8GB。磁盘安装本身大约需要 6GB 左右但我建议至少留 20GB 以上的余量。数据库的数据文件、日志文件、系统库备份都需要额外空间缩着装以后就要挪路径。操作系统Windows 10 21H2 以上、Windows 11、Windows Server 2019 或 Windows Server 2022 都支持。Windows Server 2016 就别想了直接不支持。几个容易踩的细节。第一安装向导会检查 .NET Framework 4.7.2如果系统里没有会自动请求联网安装。我遇到过好几次卡在“下载 .NET 失败”的情况所以更稳妥的做法是在断网状态下先手动装好 .NET Framework 4.8 或 4.8.1再跑 SQL Server 安装程序。第二安装路径不要选中文目录或 C 盘根目录SQL Server 对路径编码敏感个别服务账号场景下中文路径会导致服务启动失败这种事一旦发生排查起来很折磨人。第三如果你在 VMware Workstation 或者 VirtualBox 里装先给虚拟机分配 8GB 内存、60GB 磁盘再开始不然装完数据库引擎经常因为虚拟内存不足起不来服务。2.3 安装包从哪拿为什么我只信官方渠道去微软官网的 SQL Server 下载页面选择 SQL Server 2022就能看到几个下载入口。Developer 版和 Express 版可以直接拿到免费下载链接Standard 和 Enterprise 提供 180 天试用版正式授权走批量许可中心。下载文件通常是 iso 镜像体积在 2GB 上下也有 exe 引导器形式。我建议拿 iso因为 iso 可以右键挂载成虚拟光驱也可以解压到本地万一安装失败需要重新执行不需要再重新下载整个安装介质。国内各种软件站、工具站上也有一堆“SQL Server 2022 安装包”这些站点我是一律不推荐的。官方的 Developer 版本身免费直接下载多花两分钟而已。从第三方渠道拿到的安装包轻则版本不对装到一半失败重则夹带恶意脚本那个代价就大了。这不是危言耸听我在公司处理过几台被第三方“绿色版”搞坏的机器最后都是全盘清理重装。总结成一句话安装包别图省事官方页面点几下就到了。3. SQL Server 2022 保姆级安装过程步骤拆解3.1 挂载镜像启动安装先别急着点“全新安装”拿到 iso 文件之后Windows 10 和 Windows 11 直接右键选择“装载”系统会自动挂载成一个虚拟光驱分配一个盘符。也可以解压到本地文件夹效果一样。打开挂载出来的目录找到 setup.exe 双击运行。第一次启动会先弹出一个“SQL Server 安装中心”窗口这个窗口里有很多入口比如“全新 SQL Server 独立安装”“向现有安装添加功能”“从以前的版本升级”等。我第一次装的时候差点在安装中心里迷路因为入口太多了一心急就乱点。这里你只需要选第一项“全新 SQL Server 独立安装或向现有安装添加功能”。注意不要点安装中心左侧的“杂项”——那不是装实例的。安装向导启动之后第一步会经历几个前置检查页面。首先是“产品密钥”Developer 版本一般自动识别不需要输入密钥如果装的是 Evaluation 版或企业版试用密钥可能已经预填直接下一步就行。然后是“许可条款”勾选接受之后继续。如果系统缺少 .NET Framework这里会弹出提示让你安装你可以先在系统里装好 4.8 再继续。接下来是“Microsoft 更新”页面有一个选项是“使用 Microsoft Update 检查更新”。我一般建议勾选因为后续的累积更新补丁对 SQL Server 的稳定性和安全补丁挺重要尤其是你打算长时间使用时。不过如果你在内网隔离环境勾不勾都无所谓安装程序只是尝试联网检查不会因为失败就中断。再往下是“安装规则”安装程序会检查一些前置条件比如是否有重启挂起、是否有旧版本冲突等全部通过后点下一步。这里如果出现失败项不要硬往下走回到上一个页面修复问题再继续我后面讲常见问题时补充。3.2 功能选择与实例配置这两个页面决定后续使用体验“功能选择”页面是整个安装过程中最值得花时间看的地方。左侧有一个功能树默认选中了“数据库引擎服务”但实际上你需要判断到底要装哪些功能。对绝大多数开发者和中小型生产环境来说默认的“数据库引擎服务”就够了它包含了 SQL Server 核心服务也就是你连接数据库时真正在跑的东西。下面几个功能按需勾选。Integration ServicesSSIS是数据迁移和 ETL 工具如果以后要跑数据同步任务建议勾上。Analysis ServicesSSAS和 Reporting ServicesSSRS面向 BI 和报表场景一般开发环境不用装装了还会占内存和系统服务。机器学习服务Machine Learning Services支持 Python 和 R 扩展需要做数据科学实验的可以勾选但装完之后默认实例的内存占用会明显提高。右侧的“实例根目录”默认是 C 盘的 Program Files 路径如果你 C 盘空间紧张可以改到其他盘但要注意整个路径都不能有中文。这个页面还有一个容易被忽略的点共享功能目录也就是 SSMS 等工具相关的组件目录默认也是 C 盘如果你改了数据库引擎的数据目录这个共享目录保持默认就行反正占用空间不大。点下一步进入“实例配置”页面。这里要选择装“默认实例”还是“命名实例”。默认实例的实例名是 MSSQLSERVER连接时直接写服务器地址比如 localhost、本机 IP 或机器名。命名实例会以“机器名\实例名”的形式呈现连接时必须带上实例名比如 DESKTOP-2022\SQL2022。一台机器上最多可以装 50 个实例但每个实例都是独立的一套服务、端口和文件目录。我建议除非你明确知道自己要同时跑多个实例否则一律选默认实例。原因很简单连接字符串简洁端口默认 1433后续工具连接时不会被实例名和端口问题绕晕。3.3 数据库引擎配置页面逐项说明认证、管理员、数据目录、TempDB实例配置之后进入“服务器配置”页面这里有两个标签页“服务账户”和“排序规则”。“服务账户”标签会列出 SQL Server、SQL Server Agent 等服务的运行账户和启动模式。新手推荐保持默认SQL Server 服务使用 NT Service\MSSQLSERVER 这样的内置账户它权限足够且不需要手动管理密码。不要为了“看起来专业”去改成一个域账户或者本地管理员账户一旦密码过期或者策略变更服务会起不来。唯一要留意的是把 SQL Server Agent 的启动模式改成“自动”这个服务负责定时任务、作业调度默认可能是手动不改的话后面写定时任务时会发现任务不执行。“排序规则”页面默认是 SQL_Latin1_General_CP1_CI_AS这个排序规则对英文字母区分大小写不敏感对中文内容也够用。一般不需要改。除非你的业务要精确匹配大小写否则默认排序规则已经是最通用的选择。下一步“数据库引擎配置”是整个安装流程的核心页。第一个标签是“服务器配置”里面要选择身份验证模式。安装向导默认是“Windows 身份验证模式”我建议你直接选“混合模式”并给 sa 账号设置一个强密码。原因很实际如果你以后想用 JDBC、ODBC、Python 的 pyodbc 等工具连接数据库或者从别的机器远程连过来用 SQL 账号登录会方便很多。这些场景虽然也可以通过 Windows 账号实现但在非域环境里配置起来麻烦权限还容易绕不清晰。勾选混合模式后向导会要求你设置 sa 的密码——这个 sa 是系统内置超级管理员账号密码不要设成空或者弱口令长度尽量 12 位以上否则后面把实例暴露到网络时等于裸奔。第二个标签是“指定 SQL Server 管理员”。这里要设置哪些 Windows 用户可以拥有 sysadmin 权限。当前登录系统的用户默认会被添加进去如果你只是在自己电脑上学习直接下一步就行。但如果这台机器上的当前用户不是你自己或者以后要用另外的管理员账号去管理数据库记得在这里加进去。很多人忽略这一步装完之后登录数据库发现没有权限只能回到 Windows 账户下再用 Windows 身份验证登录处理。第三个标签是“数据目录”。默认情况下数据、日志、备份文件都放在 C 盘 Program Files 下。如果 C 盘空间有限强烈建议把数据目录和日志目录改到另一个磁盘而且路径不要出现中文。改的时候注意四个目录都要设数据根目录、日志目录、备份目录、TempDB 目录。我一般会把这四类分开放不要让数据文件、日志文件和系统文件混在一起这样出现磁盘满或者需要备份迁移时操作起来干净很多。第四个标签是 TempDB 配置。SQL Server 2022 的安装向导在 TempDB 这里新增了三个选项数据文件数量、初始大小、自动增长。默认会创建一个数据文件但在多核服务器上单文件 TempDB 会成为并发瓶颈。有一个不算精确但很好用的经验公式核心数在 4 到 8 之间时默认值可以不动核心数超过 8建议把 TempDB 数据文件数量设为和核心数相同或者至少 4 个。文件大小按你的实际工作负载调整开发环境给个 128MB 初始大小就够了不用一上来就分配几个 GB。这个页面的设置在安装后也能用 T-SQL 改但安装时一次性配好省得后面重启服务。这三个标签都设置好后还需要确认“MaxDOP”和“内存”之类的服务器级参数吗不需要在安装向导里设置那些可以在安装完成后用 SSMS 或 sp_configure 调整。安装向导里只需要关注上面这几项。3.4 安装执行阶段可能出现的问题与应对完成上面所有配置后安装向导还会经过“准备安装”页面这里会把所有选项汇总给你看。确认无误后点击“安装”然后进入安装执行阶段。整个安装过程视机器性能大概 10 到 30 分钟不等。这个阶段会列出各项组件和状态正常情况下最后会显示“完成”。执行阶段容易出现的两个问题。一个是安装过程中突然弹出“重新启动计算机”的提示通常是系统之前有挂起的更新需要重启。你最好先重启系统再重新运行安装程序。另外一个是防火墙弹窗SQL Server 安装过程中会自动尝试添加防火墙入站规则如果防火墙软件拦截了这个操作安装仍然能继续但你后续远程连接就会不通。如果用的是第三方安全软件安装时可以把防火墙功能暂时关闭装完再开启同时手动添加规则。这个后续会细说。安装完成之后我第一次装的时候兴奋地以为大功告成了结果打开命令提示符想敲 “sqlcmd” 测试系统提示找不到命令。因为 sqlcmd 这个命令行工具默认是不装的要在“功能选择”页面里手动勾选“客户端工具 SDK”。装之前如果忘了勾后面需要单独下载安装比较麻烦。我建议你在功能选择页面就顺手把“SQL 客户端工具 SDK”和“客户端工具连接”都勾上虽然它们体积不大但命令行管理和脚本执行的时候特别有用。4. 安装完成之后才算开始SSMS、连接测试和服务配置4.1 SSMS 单独安装这一步最容易漏新版 SQL Server 的安装介质里不再自带 SQL Server Management StudioSSMS而是要单独下载安装。这是很多人装完之后打开电脑找了一圈也找不到图形化工具的原因。SSMS 是连接和管理 SQL Server 最主要的管理工具功能包括查询编辑、对象浏览器、查询计划分析、备份还原、性能监控等日常开发几乎离不开它。去微软官网搜索“SQL Server Management Studio”找 Download SSMS 的链接下载一个 1GB 左右的安装文件双击运行走完整个向导即可。SSMS 的版本更新节奏和 SQL Server 不一致所以官网会经常有新的小版本装最新版即可不管是连 SQL Server 2016 还是 2022 都兼容。SSMS 装完之后默认是英文界面需要去工具栏的 Tools 菜单选 Options把语言设置改成中文并重启。当然英文界面也没问题只是很多初学者还是习惯中文菜单。4.2 用 SSMS 连接本地实例并验证版本打开 SSMS弹出来的“连接到服务器”窗口里服务器类型选“数据库引擎”服务器名称填“localhost”或者本机电脑名。如果你是命名实例格式是“机器名\实例名”。身份验证方式根据你之前的选择Windows 认证模式就选“Windows 身份验证”混合模式则可以用“SQL Server 身份验证”登录登录名填 sa 和密码。点“连接”之后如果成功左侧对象资源管理器里能看到数据库文件夹展开里面有系统数据库master、model、msdb、tempdb和任何你新建的用户数据库。到这里安装就已经成功了。我每次装完都会顺手执行几个简单验证操作右键实例名看属性确认版本号和版本类型是 Developer 还是 Standard。打开新建查询执行SELECT VERSION;确认内核版本号是 16.x。执行SELECT name FROM sys.databases;确认系统库都在并且状态是 ONLINE。“连接到服务器”窗口还有一个“选项”按钮这里可以看连接协议和端口。本地连接默认走 Shared Memory 协议不需要网络传输速度很快。如果你在同一个窗口里连接失败但 SQL Server 服务明明在运行多半是服务名、实例名或者认证方式对不上。别急着重装先逐个排查。具体排查方法我放到下一部分统一说。4.3 远程连接需要配置防火墙和启用 TCP/IP如果你不只是在自己电脑上连接还要从其他机器访问这个 SQL Server 实例就必须处理两个关键点启用 TCP/IP 协议和配置防火墙。默认情况下SQL Server 的 TCP/IP 协议很可能是禁用的只能通过本地共享内存连接远程机器连不上。打开 SQL Server 配置管理器在开始菜单里搜索 SQL Server Configuration Manager找到“SQL Server 网络配置”在实例的“协议”里把 TCP/IP 启用并重启 SQL Server 服务才能生效。端口方面默认实例监听 1433 端口命名实例一般监听动态端口这会让远程连接配置变得很麻烦。所以如果你要远程访问命名实例建议在配置管理器的 TCP/IP 属性里把动态端口改成固定端口比如 1433 或某个自定义端口这样可以在防火墙里精确放行。自定义端口有个好处可以避开 1433 这个众所周知的默认端口减少被恶意扫描的概率但代价是你在所有连接字符串里都要显式指定端口号。我自己的习惯是内网环境直接用 1433对外暴露的话改一个不常用的端口。防火墙规则的添加方式是打开 Windows 防火墙设置新建入站规则选择端口填上 1433或你的自定义端口协议选 TCP/IP操作选“允许连接”配置文件全部勾选给规则起个名字完成。注意 UDP 1434 也是 SQL Server 浏览器服务的端口如果你要通过实例名浏览服务需要放行 UDP 1434否则遇到命名实例时会报“找不到服务器”。如果连接仍然不行还要检查虚拟机的网络模式VMware 里如果用的是 NAT 模式宿主机和虚拟机之间的端口映射也要在虚拟机网络编辑器里配置这个坑我踩过不少次。5. 安装遇到问题怎么办常见错误和排查思路5.1 “无法连接到本地实例”到底是为什么这是最常见的报错。打开 SSMS 连接时提示 “A network-related or instance-specific error occurred”翻译过来是“与网络相关或特定于实例的错误”。看到这个提示很多人第一反应是重装但其实原因大概率是以下三个。第一个是 SQL Server 服务没有启动。打开 Windows 服务管理器WinR 输入 services.msc找到 SQL ServerMSSQLSERVER服务看状态是不是“正在运行”。如果是“已停止”右键启动。服务没启动的原因又可能是登录账户密码错误、配置文件被改动、磁盘满了等启动失败时会弹错误信息需要进一步查 Windows 事件查看器里的日志。第二个是实例名写错了。默认实例连 localhost 或者机器名命名实例必须带“\实例名”。我以前遇到过有人本地装的是命名实例但一直用 localhost 连接报错后还以为是安装问题。判断方法很简单在服务管理器里看服务名如果是 SQL Server (MSSQLSERVER)就是默认实例如果是 SQL Server (SQL2022)连接时就要用“localhost\SQL2022”。第三个是 TCP/IP 协议没有启用或者端口不通。本地连接失败可以先尝试 Windows 身份验证模式如果 Windows 认证也连不上几乎能确定是服务和网络层面的问题。启用 TCP/IP 并重启服务后再试。如果仍然失败可以用命令行工具netstat -ano | findstr 1433查看端口是否在监听没有监听说明 SQL Server 没有正常以 TCP/IP 协议启动。5.2 安装中途失败或者回滚怎么定位问题SQL Server 安装失败时最典型的特征是安装向导在某个组件上报错然后整体回滚。此时不要急着重新运行安装程序否则很可能在同一个位置再次失败。安装日志文件位于安装介质的临时目录一般是 C:\Program Files\Microsoft SQL Server\160\Setup Bootstrap\Log。找到最新的日志文件通常是带时间戳的文件夹里面有细节日志。对于没有经验的用户直接看日志会感到信息量太大我通常先看两个地方“Exit code”相关的行比如 “The error code is 0x...” 或者 “Error result: -2068643839”。把这个错误码记下来到网上搜索通常能找到对应的解释。日志里 “Error message” 后面的文本经常直接告诉你原因比如“路径无效”“找不到指定文件”“访问被拒绝”。常见的安装失败原因包括磁盘空间不足、路径包含中文或特殊字符、系统缺少 .NET Framework 或 VC 运行库、安装过程中被杀软拦截、系统存在挂起的重启操作。排查顺序我建议是先检查磁盘空间和重启状态再关掉或放行安全软件最后核对路径。不要一开始就怀疑安装包有问题官方 iso 镜像的完整性非常高镜像文件本身出问题的概率极低。还有一个容易忽略的场景之前装过旧版本或者卸载没卸干净会导致安装规则检查失败。如果你打算从旧版本升级到 2022官方支持 SQL Server 2014 及以上版本直接升级到 2022。但我个人的建议是开发和学习环境直接装全新的 2022 实例不要做原地升级。原地升级周期长、风险高一旦中间出现数据兼容性问题回滚会很痛苦。有旧库要迁移的话用备份还原或者 Data Migration Assistant 导出数据比原地升级更可控。5.3 日常运维中值得养成的好习惯装好一次实例只是开始我每次帮人装完后都会顺手做三件事长期来看都很值。第一把 SQL Server 的默认数据目录迁移到非系统盘并在数据库新建文件时继续沿用这个路径避免 C 盘被撑爆。第二对 sa 账号启用强密码并关闭不必要的远程访问尤其不要为了图方便把 1433 端口直接映射到公网。第三配置数据库的自动化备份计划SQL Server Agent 完全可以做到每天凌晨备份主库这比临时想起来手动备份靠谱得多。这些习惯看着简单但能避免不少半夜被叫起来处理数据库故障的场面。有一个很实用的小技巧用 sqlcmd 命令行测试连接比 SSMS 图形界面更直接。在命令提示符里执行sqlcmd -S localhost -EWindows 认证或者sqlcmd -S localhost -U sa -P 密码SQL 认证成功后会进入1的提示符输入SELECT GETDATE();回车再输入GO返回当前时间就说明实例完全正常。这个方式排障时非常高效不用等图形界面加载。还有一件事是版本升级。SQL Server 2022 发布后的累积更新补丁比较频繁微软会定期推送。如果你是新装的生产环境安装完要关注官方发布的 Cumulative Update把必要的安全补丁打上。但注意不要盲目追最新补丁生产环境一般等补丁出来一两周看社区反馈再决定是否安装以免引入新的问题。我个人装了那么多次 SQL Server最大的体会是安装这件事真正影响成败的不是你点了多少次“下一步”而是动手之前对版本、路径、认证方式这些选项有没有想清楚。很多报错反复出现其实都是同一个根因——当初装的时候图省事跳过了某些选项后期才来补账。这篇如果你从头看到这里应该对 SQL Server 2022 的完整安装链路已经心里有数了剩下的就是自己动手装一遍。装的过程也是熟悉这套数据库管理工具的最好方式多踩两次坑后面反而更顺手。
返回列表