说实话,SQL Server 2019 的安装向导本身已经做得很“傻瓜化”了,只要一路下一步就能装完,但我见过太多人恰恰就挂在最后一步:明明提示安装成功,结果打开 SSMS 连不上;或者装到一半报“服务无法启动”;还有人图省事从第三方网站下了个“企业版 ISO”,装完发现系统被塞了一堆全家桶。所以这篇文章不打算只给你贴一张“下一步、下一步、完成”的图,而是把版本选择、环境准备、向导里每一项到底在干什么、装完之后必须做的配置、以及最常翻车的几个现场,一条条讲清楚。全文按 SQL Server 2019 官方安装流程的画面顺序来走,虽然没有真实截图,但每个界面你会看到什么、该选哪个、为什么这么选,都会写到位,照着操作基本不会再翻车。
这篇教程适合三类人:第一次装 SQL Server 2019 的新手,想在同一台电脑上再并一个实例的老手,以及之前装失败、准备彻底卸载重装的“受害者”。我会从下载渠道就开始讲,因为在“SQL Server 2019企业版 下载”这种热搜词的背后,其实藏着大量误导性的第三方下载站。先把这些坑绕过去,后面才谈得上顺利安装。
1. 版本、实例、服务账户:装之前把这几个概念理清,后面少走弯路
1.1 选错版本是第一个坑:企业版、标准版、Developer、Express到底怎么选
很多人一搜“SQL Server 2019 企业版 下载”就直接找链接,但这里最容易出问题。SQL Server 2019 并不是只有一个安装包,不同版本对应不同的授权模式、功能和安装行为。我先把常用的几个版本放一张表,看着直观:
| 版本 | 典型用途 | 费用 | 主要限制 |
|---|---|---|---|
| Enterprise(企业版) | 中大型生产环境,高可用、高级安全特性齐全 | 商业授权 | 需要购买许可,下载来源必须是正规渠道 |
| Standard(标准版) | 小型企业生产环境、部门级应用 | 商业授权 | 部分高可用和高级功能受限,授权同样要买 |
| Developer(开发者版) | 本地开发、学习、测试 | 免费 | 功能同企业版,但不能用于生产环境 |
| Express(快速版) | 轻量学习、嵌入式小应用 | 免费 | 单库大小上限 10GB 左右、CPU/内存受限 |
| Evaluation(评估版) | 企业功能试用、验证、临时项目 | 免费试用 180 天 | 到期后要么转正,要么卸载重装,不建议直接拿来做长期生产 |
如果你只是想学习、自己写点程序练手,我的建议很直接:装 Developer 版。它和企业版在数据库引擎功能上几乎没有差别,而且免费,不需要为密钥发愁。如果公司生产环境明确要求企业版或标准版,下载和激活都必须走微软官方或授权经销商渠道,不要用网上搜索到的“企业版直装”压缩包。
正规下载入口是微软官方评估中心,也可以访问微软官网的 SQL Server 下载页面,分别有 Evaluation、Developer、Express 的下载选项。下载到的是 ISO 镜像,大小通常 1.5GB 到 2.5GB 不等。第三方下载站里那种标题写着“SQL Server 2019企业版免激活”“中文破解版”的文件,我劝你碰都别碰,里面被塞进脚本和捆绑软件的概率非常高,而且安装完往往缺组件,出问题都不知道该找谁。
1.2 默认实例和命名实例:同一个电脑要装多个版本时怎么排
安装向导里有一页叫“实例配置”,菜鸟会觉得随便选,老手则会在这里停下来认真想一下。SQL Server 的“实例”可以理解成一台电脑上独立的数据库引擎房间。默认实例的名字叫“MSSQLSERVER”,它监听 1433 端口,客户端连接时只需要写服务器名,例如 localhost 或 192.168.1.10。命名实例则像给房间起了个名字,例如 SQL2019,客户端连接时必须写成 主机名\实例名,例如 localhost\SQL2019。
如果你这台电脑以前没装过任何 SQL Server,第一台直接选“默认实例”最省事,因为所有教程、连接字符串都默认按默认实例来写,后面不需要纠结实例名。但如果你想在同一台机器上同时保留 SQL Server 2017 和 SQL Server 2019,或者想让测试实例和正式实例互不干扰,就必须选“命名实例”。命名实例的默认访问方式不是固定 1433,而是动态端口,客户端需要通过 SQL Server Browser 服务来发现端口,这部分后面讲网络配置时会提到。
安装向导里“实例 ID”默认跟着实例名走,没有特殊情况不要改。实例根目录默认在 C:\Program Files\Microsoft SQL Server\,如果 C 盘空间紧张,可以在这里改到 D 盘,但要注意路径里不要带中文或特殊字符,否则后续服务启动容易出莫名其妙的问题。
1.3 服务账户不是垃圾桶:别随便用 LocalSystem 或 Administrator
安装过程中有个“服务器配置”页面,显示 SQL Server 数据库引擎、SQL Server Agent 等服务的账户。在大多数单机场景下,默认的服务账户是虚拟账户,比如 NT Service\MSSQLSERVER。很多教程直接让你不改,这是对的。
为什么不要随手改成 LocalSystem 或者本机管理员账户?因为 SQL Server 的服务一旦以高权限账户运行,等于数据库进程有了操作系统最高权限,万一数据库被注入或者文件目录权限配置不当,攻击面会被放大。虚拟账户的特点是:不需要手工维护密码,也不能远程登录,SQL Server 服务只在本地以最小必要权限运行,专门为 Windows 服务设计。如果你的 SQL Server 需要跨机器访问网络共享目录作为备份目标,或者要用到域账号做 Kerberos 认证,那时才需要改成域账户,而且这个域账户也应该遵循最小权限原则。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统准备做到位:.NET Framework、重启残留、旧版本清理一个都不能少
2.1 先把 Windows 的 .NET Framework 3.5 打开,否则安装规则检查会直接红
SQL Server 2019 安装程序对系统环境有硬性要求,其中最容易被忽略的是 .NET Framework。打开安装程序后,第一步“全局规则”检查里,如果出现 This program requires .NET Framework 3.5 或者类似报错,说明你的 Windows 还没启用 .NET Framework 3.5。尤其在国内常见的精简版系统、Windows Server 系统上,这个功能默认不一定开启。
打开方式很简单:控制面板 -> 程序和功能 -> 启用或关闭 Windows 功能,勾选“.NET Framework 3.5(包括 .NET 2.0 和 3.0)”。如果系统提示需要联网下载,就让它联网下载。Windows Server 系统则通过“服务器管理器 -> 添加角色和功能”走到“功能”页,勾选同样的项。另外 SQL Server 2019 本身也依赖 .NET Framework 4.7.2 以上版本,Windows 10/11 通常已经通过 Windows Update 内置,但如果你的系统特别老,建议先装好 .NET Framework 4.8 再开始 SQL Server 安装。
这个步骤我为什么花一整节讲?因为我在实际交流中看到太多人卡在安装第一步,却以为是安装包问题,反复重新下载 ISO。其实问题根本不在安装包,而在 Windows 功能没开。记住这个顺序:先补系统组件,再跑安装程序。
2.2 “重启计算机”残留导致的安装中断,十个人里能碰上一两个
SQL Server 安装程序会检查注册表里是否存在挂起的文件重命名操作。这是 Windows Installer 的机制:以前装某个软件时更新了系统文件,但要求重启后才能完成文件替换,系统会在注册表里记下一笔账。这个记账不消掉,SQL Server 安装程序就会认为当前不适合继续安装,提示“必须先重新启动计算机”或者“存在挂起的重启操作”。
遇到这种情况,最稳妥的办法是先手动重启一次电脑,让系统完成遗留的文件替换,然后再跑安装程序。如果重启后仍然提示,那就需要手动检查注册表项:
code复制HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
看右侧的 PendingFileRenameOperations 值是否存在。如果存在且不是空值,可以右键删除这个值,然后重启电脑。操作前建议先右键该项导出并保存一份,防止误删后系统文件替换出问题。这个方法我在 Windows Server 上用过很多次,处理完重启后,SQL Server 安装通常就能顺利通过全局规则检查。
2.3 旧版本不卸干净,重装 2019 会遇到各种灵异现象
如果你这台电脑之前装过 SQL Server,但安装失败或者你觉得“不干净”所以重装,那千万不要直接插入 ISO 就开始跑。SQL Server 对安装残留极其敏感,常见情况是:
- 旧实例的服务还在但损坏,新安装向导在“实例配置”页面提示实例名已存在;
- 数据目录或共享目录残留旧文件,导致新实例服务无法启动;
- 注册表里残留安装状态,安装程序每次都会走到一半回滚。
我的建议是彻底清理后再装。先到“控制面板 -> 程序和功能”里找到所有名称带“Microsoft SQL Server”的条目,把需要移除的版本逐个卸载;接着删除安装目录,比如 C:\Program Files\Microsoft SQL Server、C:\Program Files (x86)\Microsoft SQL Server 下的对应子目录;然后看 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft SQL Server 之类的残留快捷方式,能删则删。如果你的数据还要保留,卸载前先把数据库文件(.mdf 和 .ldf)备份出来,卸载时不要勾选删除数据库。
如果是同一个默认实例装坏了,最典型的表现是安装程序检测到已有实例。此时要么选择安装命名实例来避开,要么按上面的步骤把旧实例彻底卸载,包括删除 SQL Server 服务注册。清理注册表服务需要用到命令行的,我后面在排查小节里展开。
2.4 环境检查清单:操作系统、磁盘、管理员权限
再列一个简短的清单,方便你安装前对照:
- 操作系统:SQL Server 2019 支持 Windows 10(1607 及以上)、Windows 11、Windows Server 2016/2019/2022。Windows 7 不要尝试,系统配置检查直接过不了;
- 磁盘:建议保留 20GB 以上空闲空间,至少也要满足安装向导给出的 6GB 最低要求;
- 内存:最低 2GB,单机开发建议 8GB 以上,后面的配置会更舒服;
- 当前用户必须是本机管理员组成员,安装时右键 setup.exe 选择“以管理员身份运行”;
- 安装前关闭正在运行的杀毒软件或安全软件,避免它锁定 SQL Server 的文件。不是叫你不装杀毒,而是安装过程可以临时退出,装完再开回来。
3. 安装向导全流程:从挂载 ISO 到看到 Complete,每一步都讲透
3.1 启动安装中心,选择“全新 SQL Server 独立安装”
ISO 镜像下载完成后,在 Windows 10/11 里可以直接双击挂载,也可以右键选择“装载”。资源管理器里会出现一个虚拟光驱,进入后找到 setup.exe,右键以管理员身份运行。
第一次启动时会先进入 SQL Server 安装中心,左侧有“计划”“安装”“维护”“工具”“资源”“高级”几个选项卡。不要乱点,直接进“安装”选项卡,点击“全新 SQL Server 独立安装或向现有安装添加功能”。如果你以前装的是 SQL Server 2017,想在这台机器上补一个 2019 的命名实例,入口是同一个。
如果是评估版或开发者版,安装程序会自动带上授权类型,不需要额外在产品密钥页输入什么。企业版/标准版购买用户会拿到一个 25 位产品密钥,在这一步填入。之后勾选“我接受许可条款”和必要的隐私声明,一路下一步。
3.2 先跑一遍规则检查,看到红叉先别硬往下走
安装向导会先执行“全局规则”和“安装规则”检查,出现绿色打勾的条目不代表环境完美,而是说可预见的冲突还没有发生。常见的红叉来源除了前面提过的 .NET Framework 3.5 没装、挂起重启操作,还有 Windows Management Instrumentation (WMI) 服务被禁用、注册表权限异常等。这一页如果报红,建议截图或者把错误项展开看详情,先解决再继续,不要点“下一步”硬闯,否则多半会在后面某个环节回滚。
个别红叉是“警告”级别,比如“Windows 防火墙”警告,不会真正中断安装,可以继续。这里安装程序有可能会把扫描到的错误显示成“失败”,这时可以去错误日志里搜索 GlobalRules 定位原因。总之,看到红叉不要慌,先看是什么,再补环境。
3.3 功能选择:不要“全选”,按需安装才是正道
功能选择页可能是新手最容易手滑的地方,因为每个功能旁边都有勾选框,看起来全都高大上。我在各种安装截图里最常看到的是把 Analysis Services, Reporting Services, Integration Services, Machine Learning Services 全部勾上。这样做不是不能装,但装了以后意味着系统里会多出好几个 Windows 服务和后台进程,占用资源、增加攻击面,而且很多功能你可能一年都用不上一次。
如果你只是需要一个关系型数据库来存数据、跑 SQL,那么只要勾选核心功能:数据库引擎服务 以及它下面的子项。复制、全文搜索这些根据情况选,默认通常可选。Integration Services(SSIS)用于做 ETL,如果你做数据集成将来可能用到,也可以选,但它会和数据库引擎一起作为实例的一部分安装。Analysis Services 和 Reporting Services 是独立服务,没具体需求就先别勾,以后需要时可以通过安装中心左侧“安装 -> 向现有安装添加功能”再补,没必要一开始全塞进去。
页面下方还有“共享功能目录”和“实例根目录”。如果 C 盘空间紧张,可以把共享功能目录改到 D 盘。注意 SQL Server 的主程序和数据文件默认都装在 C 盘,如果你希望数据文件放 D 盘,等会儿在“数据目录”页设置更合适。
3.4 实例配置和服务器配置:设置默认实例、保留默认服务账户
进入“实例配置”页后,前面如果机器上没有实例,那我建议选“默认实例”,实例 ID 保持自动生成的 MSSQLSERVER。如果已经存在一个 SQL Server 默认实例,那就必须选“命名实例”,名称尽量用字母和数字,例如 SQL2019。实例根目录可以看着改,但是最好保持默认,除非你已经明确知道要迁到 D 盘。
下一页“服务器配置”有两个页签:一个是“服务账户”,一个是“排序规则”。
服务账户页里,数据库引擎默认是 NT Service\MSSQLSERVER,SQL Server Agent 默认是 NT Service\SQLSERVERAGENT。如果你安装的是命名实例,则分别是 NT Service\MSSQL$SQL2019 和 NT Service\SQLAgent$SQL2019。启动类型这一列很有讲究:数据库引擎必须设为“自动”,否则每次开机都要手动启动数据库;SQL Server Agent 建议也改成“自动”,因为备份作业、计划任务都依赖它;SQL Server Browser 在单实例场景可以保持手动,多实例远程连接时再考虑自动。
排序规则页面有点反直觉。SQL Server 默认的排序规则在中文 Windows 上通常是 Chinese_PRC_CI_AS,表示简体中文、不区分大小写、区分重音。不过很多企业实际用的一直是 SQL_Latin1_General_CP1_CI_AS,因为历史系统从英文环境迁移过来。安装后想改排序规则非常麻烦,所以这里最好先和公司现有数据库确认,而不是随手选。开发学习机用默认值即可。
3.5 数据库引擎配置:身份验证模式、SQL Server 管理员、数据目录都在这页
数据库引擎配置是整个安装过程中最关键的一页,它长这样:左侧有“服务器配置”“数据目录”“TempDB”“MaxDOP”“内存”等几项。
第一项“服务器配置”说的是身份验证模式。这是新手最容易纠结的问题。如果你完全不懂混合模式,那就选“Windows 身份验证模式”最安全,因为你的 Windows 登录账号就是管理员,不需要管 sa 密码。但有一个实际场景是开发工具、Java/PHP 程序需要独立数据库账号连接,这时候混合模式更方便。混合模式等于同时允许 Windows 身份验证和 SQL 身份验证(如 sa 或自定义登录名)。我个人的建议:在单机学习和开发机上,直接选混合模式,并设置一个足够强的 sa 密码。密码至少 8 位,包含大小写字母、数字和符号,然后记到密码管理器里。生产环境则更推荐先选 Windows 身份验证,等 DBA 做好账号体系后再改。
同一页还可以“指定 SQL Server 管理员”,这里要添加当前 Windows 用户。哪怕你已经用管理员组账号登录,仍然要点“添加当前用户”,否则安装完成后你用 Windows 身份验证登录时可能没有 sysadmin 权限,那就要用单用户模式进去救,麻烦得很。
第二项“数据目录”可以直接影响日后的磁盘规划。默认数据根目录在 C 盘,如果你不想 C 盘被塞满,建议把“数据根目录”“用户数据库目录”“用户数据库日志目录”“备份目录”改到 D 盘或数据盘。SQL Server 服务账户需要有目录的完全控制权限,你自己先创建好目录还是让安装程序自动创建,两者都可以,但记住目录不可以放在压缩盘或加密盘根目录,否则后续性能和服务启动都可能出问题。
TempDB 页在 2019 里做得比老版本漂亮,默认会根据 CPU 核数生成一定数量的数据文件。新手直接保持默认即可,不要去调成一个乱七八糟的值。如果你跑的是高并发系统,再根据 CPU 核数把 tempdb 数据文件数量调整为与逻辑处理器数量一致或接近,这个优化后续在 DBA 进阶阶段再做也不迟。
3.6 依赖检查、准备安装、执行安装,直到 Complete
等你填完数据库引擎配置,安装向导会回到“准备安装”页,把要安装的功能列表、实例目录、配置路径汇总出来。这个页面下方有一个“配置文件路径”,如果你的安装遇到问题,这个路径下的配置文件可以用来复现安装选项,也能帮你确认当时的每一步设定。
点击“安装”后,界面会显示各个功能的状态,从“正在安装”到“正在配置”。SQL Server 2019 的安装时长取决于你选择的功能多少和机器性能,通常几分钟到十几分钟。看到状态列表全部变成 Complete 后,安装即成功,此时点击“关闭”,SQL Server 2019 数据库引擎已经悄悄运行在系统服务里了。
需要强调的一点是:SQL Server 2019 的安装向导里并不包含完整版的“SQL Server Management Studio(SSMS)”。过去的版本会把管理工具作为一个组件放进去,但从 2016 年开始,SSMS 变成独立安装包。所以很多人装完 SQL Server 之后找不到 SSMS,这不是装坏了,而是本来就要单独装。
4. 装完不等于能用:SSMS、TCP/IP、防火墙、内存上限这些后续配置别忽略
4.1 单独安装最新版 SSMS,连接本地实例
SSMS 的官方下载地址是微软官网的 SQL Server Management Studio 页面,或者直接访问 https://aka.ms/ssmsfullsetup,它会跳转到最新的完整安装包。下载后双击安装,语言选简体中文,安装目录可以保留默认。SSMS 安装完成后,从开始菜单找到“Microsoft SQL Server Management Studio 18”或“19/20”(具体版本号以你下载的为准)打开。
第一次连接时,“服务器名称”填什么取决于你装的是默认实例还是命名实例。默认实例填 . 或 localhost 或 localhost 的主机名都可以;命名实例要填 localhost\SQL2019(实例名替换成你自己的)。身份验证方式如果安装时选的只有 Windows 身份验证,这里就保持“Windows 身份验证”,点击“连接”。如果连接成功,左侧对象资源管理器里就能看到数据库、安全性、服务器对象这些节点了。
4.2 检查 TCP/IP 协议是否启用,否则远程工具连不进来
很多人在本机打开 SSMS 能连,但换到另一台电脑用连接工具就连不上,第一反应是防火墙问题,其实还有一个隐藏点:SQL Server 的 TCP/IP 协议可能没启用。默认实例安装后通常 TCP/IP 是启用的,但 Express 版或者手动调整过协议时,TCP/IP 很可能处于禁用状态。打开 SQL Server 2019 配置管理器的方式:在运行框输入 SQLServerManager15.msc 回车,或者从开始菜单搜“SQL Server 2019 Configuration Manager”。
在左侧“SQL Server 网络配置”下找到“MSSQLSERVER 的协议”(命名实例则是“SQL2019 的协议”),右侧会列出 Shared Memory、Named Pipes、TCP/IP 三项。如果 TCP/IP 状态是“已启用”,那问题不在协议;如果显示“已禁用”,右键点击它,选择“启用”,然后重启 SQL Server 服务。注意,修改协议后必须重启数据库引擎服务才会生效。
如果你需要让外部客户端通过固定端口连接,建议同时把 TCP/IP 的端口固定下来。双击 TCP/IP,切到“IP 地址”页签,最下面有一个“IPAll”,在“TCP 端口”里填 1433(或者你自定义的端口),把上面的“TCP 动态端口”留空或清空。这样 SQL Server 稳定监听固定端口,后面防火墙也只需要放行这个端口。
4.3 防火墙入站规则:远程连接能不能通,就看这一条
Windows 防火墙默认会拦截外部入站连接,所以即使 SQL Server 在监听,局域网另一台电脑也连不进来。如果你只是本机使用,防火墙可以不管;但如果你想让自己开发的程序从别的电脑连数据库,就需要在安装 SQL Server 的机器上加一条入站规则。
操作方法:打开“Windows Defender 防火墙”或“高级安全 Windows Defender 防火墙”,左侧点击“入站规则”,右侧“新建规则”,类型选“端口”,协议选“TCP”,指定本地端口填 1433,操作选“允许连接”,配置文件三个全部勾选,名称写“SQL Server 1433”,完成。如果改了固定端口,就填对应端口;如果用的是命名实例且没固定端口,就需要额外放行 UDP 1434 给 SQL Server Browser 服务,但最省心的做法还是给实例固定端口,然后把固定端口放行。
写完规则后,从另一台电脑用工具连一下,服务器名写 目标IP,1433,身份验证用 sa 或混合模式账号。能通就说明远程配置已经没问题了。
4.4 改内存上限和开机自启,避免数据库吃光整台机器
SQL Server 的行为跟普通应用不一样,它默认配置下会尽量把可用内存拿去作为数据缓存,这在纯数据库服务器上没问题,但如果你同一台机器上还跑着 Web 服务、开发工具、虚拟机,就会觉得机器越来越卡。所以安装完成后的第一轮配置里,我建议顺手设置最大服务器内存。
打开 SSMS,连接实例后右键服务器节点,选择“属性”,切到“内存”页。你会看到“最大服务器内存(MB)”默认是一个非常大的数,等于它允许 SQL Server 把系统大部分内存都吃掉。假设机器物理内存是 16GB,你可以把最大服务器内存设为 12288MB,也就是 12GB,给操作系统和别的程序留出 4GB。8GB 内存的机器则可以考虑设为 6144MB 左右。这个数字不是绝对的,还要看你实际并发和工作负载大小,但总比裸奔强得多。
服务自动启动也别忘了。Win + R 输入 services.msc,找到“SQL Server (MSSQLSERVER)”(命名实例是“SQL Server (SQL2019)”),右键属性,把启动类型改成“自动”,确认服务状态是“正在运行”。否则服务器断电重启后,SQL Server 不会自己跑起来,程序连数据库就会报错。
4.5 补丁更新:SQL Server 2019 建议装一个较新的累积更新
SQL Server 2019 从发布到现在已经积累了多个 Cumulative Update(累积更新),CU 里面包含了大量修复和改进。刚安装完的 RTM 版本在没有打补丁的情况下,可能会碰到一些已知的 bug,所以建议有条件的话直接从官方下载最新累积更新包安装。升级前最好先备份数据库,在开发机上直接装问题不大,生产环境就得按照变更流程来操作。安装完累积更新后,SQL Server 服务会自动重启一次,连接会短暂断开,这一点要提前和同事打招呼。
4.6 如果安装时选了 Windows 身份验证,后续想用 sa 怎么办
有一种很常见的需求:安装时图省事选了 Windows 身份验证,结果后来写程序发现连接字符串里需要 SQL 账号。这时不用重装。先用 Windows 身份验证连上 SSMS,右键服务器 -> 属性 -> 安全性,把“服务器身份验证”改为“SQL Server 和 Windows 身份验证模式”,然后到“安全性 -> 登录名 -> sa”上右键属性,给 sa 设置一个密码,并把“状态”页里的“启用登录”改成已启用,最后重启 SQL Server 服务。这样 sa 就能用了。只是这种改动相当于把一个安全的系统打开了一条混合认证通道,密码强度和账号审计一定要跟上。
5. 新手最容易翻车的几个现场:从现象到根因的完整排查链路
5.1 服务启动失败:先看 ERRORLOG,别急着卸了重装
现象是安装到数据库引擎配置阶段就报错,提示服务无法启动;或者装完以后,在服务管理器里启动 SQL Server 就弹窗失败。遇到这个问题,很多人第一反应是“安装包坏了”,于是删了重装,结果重装后依然失败。
正确的排查链路应该是这样的:先打开 Windows 事件查看器,在“Windows 日志 -> 应用程序”里找到来源为 MSSQLSERVER 或 SQLSERVERAGENT 的红色错误,看错误码;再到 SQL Server 自带的错误日志目录里找文件,路径通常是 C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Log\ERRORLOG,用记事本打开最后几行。如果看到 Operating system error = 5(Access is denied.),那就说明数据目录或者日志目录的 ACL 权限不对。此时右键相关目录,属性 -> 安全,给 NT Service\MSSQLSERVER 这个服务账户添加“完全控制”权限,然后再启动服务。
我见过很多人把默认数据目录改到 D 盘后出现这个错,就是因为 D 盘目录的权限没有继承或者管理员手动删除了默认授权。给服务账户授权后,启动问题基本迎刃而解。如果 ERRORLOG 里提示端口被占用,那就走下一个章节的端口排查。
5.2 装好了但 SSMS 连不上 localhost:按这个顺序逐层检查
SSMS 连接 localhost 报错,常见错误有两类。错误信息类似“在建立与服务器的连接时出错。在连接到 SQL Server 时,默认设置 SQL Server 不允许远程连接”,或者直接提示“网络相关或特定于实例的错误”。不要一上来就觉得是 SA 密码不对,按照下面的顺序排查。
第一层,先确认服务在跑。到服务管理器看 SQL Server (MSSQLSERVER) 状态。如果服务没启动,参考上一个问题解决。
第二层,用命令行工具测试,这和 SSMS 没有关系。打开命令提示符,输入:
bash复制sqlcmd -S localhost -E
如果能出现 1> 提示符,说明数据库引擎正常,问题出在 SSMS 的配置或连接方式上。如果提示找不到 sqlcmd,可以用完整路径,默认在 C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE。
第三层,如果 sqlcmd -S localhost 失败,再去 SQL Server 配置管理器里看协议。把 TCP/IP 和 Named Pipes 都启用,重启服务再试。错误号 40 基本是网络层面无法访问;错误号 18456 才是身份验证失败;错误号 26 一般是在解析实例名或端口时找不到目标。
这个排查顺序能帮你把“数据库服务问题、网络协议问题、账号权限问题”快速分开,而不是一头扎进 sa 密码里。
5.3 “重装时检测到已有实例”或安装器提示重启残留:清理注册表和旧服务
如果你是在一台装过 SQL Server 的机器上重装,很可能会在实例配置那一步碰到“实例名称已被使用”,或者在全局规则阶段被“挂起的重启操作”拦下。前者的问题是旧实例没有清理干净,后者是注册表里的 PendingFileRenameOperations 残留。
处理旧实例残留的完整路径是:先卸载程序,再用安装中心里“维护”选项卡下的“删除”功能把实例删掉;然后打开命令提示符以管理员身份运行,执行:
bash复制sc query | findstr /i "MSSQL"
查看是否还有 SQL Server 相关服务。如果有,可以进一步用 sc delete 服务名 清理。当然,sc delete 是很暴力的手段,只有在确认实例已经完全卸载、这些服务确实属于残留时才用。清理完再检查安装目录是否还存在大量文件,如果存在就手动删除。最后再去注册表编辑器里删除 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server 下对应实例的残留分支,这个操作风险较高,建议先备份注册表再删。
但这里我要强调:不要为了“确保干净”就去注册表里乱删一通,错误删除可能导致系统不稳定。大部分情况按顺序做好前两步就能解决,注册表清理只有在确认实例已经卸载却依然冲突时才尝试。
5.4 端口被占用导致 1433 起不来:用 netstat 找到真凶
SQL Server 启动失败时,如果 ERRORLOG 里出现 TDSSNIClient initialization failed with error 0x80004005 或者类似提示,同时配置管理器里看到 TCP/IP 端口无法正常监听,大概率是 1433 端口被别的程序占了。最常见的占道者包括其他 SQL Server 实例、某些开发工具自带的数据库、或者恶意进程。
在命令提示符里执行:
bash复制netstat -ano | findstr ":1433"
如果返回一个 PID,再去任务管理器里对应那个 PID,看看是哪个程序。如果占用者确实是另一个 SQL Server 实例,而你又在同一台电脑上装新实例,那就别跟它抢 1433,给新实例指定一个别的固定端口,例如 14333。改了端口后,客户端连接时要写 localhost,14333 或 主机名,14333。同时把防火墙规则里的端口也改成对应的端口。
5.5 sa 登录失败:混合模式没开、账户被禁用、密码输错,三个原因逐个查
“无法连接到服务器,用户 sa 登录失败”是很多人安装完第一天就会遇到的报错。这个报错的完整链路是这样的:先右键服务器实例 -> 属性 -> 安全性,确认当前是“SQL Server 和 Windows 身份验证模式”,如果还是“仅 Windows 身份验证”,即使 sa 密码正确也登录不了;其次到“安全性 -> 登录名 -> sa”的属性里,查看“状态”是否勾选了“启用”;最后才是密码本身是不是有大小写或特殊字符错误。如果你是安装向导里选的混合模式且设置的 sa 密码,那么最可能的问题其实是你记的密码和实际设置不一样,或者密码里带了空格/换行。可以直接用 Windows 身份验证登进去,右键 sa 重新设置一个简单好记的临时密码,确认能登录后再改成正式强密码。
最后再分享一个我自己排障时的小习惯:装完 SQL Server 之后,不要急着把安装窗口关掉从零开始点来点去,先把数据库引擎的错误日志目录完整记下来。后续所有“服务起不来”“连接不上”的问题,让数据和日志替你说真话。查看 ERRORLOG、Windows 事件查看器、用 sqlcmd 从命令行连一把,这三板斧能解决绝大多数看似莫名其妙的新装问题。如果将来真的卡到怀疑人生,带上这三个地方的内容去社区提问,别人也能快速帮你定位,而不是大家一起云猜谜。
