我不止一次收到类似的提问:老师,我SQL Server 2019装完了,为什么SSMS连不上localhost?这个问题出现时,我很少怀疑用户漏点了哪一步,更常见的答案是——装完就急着用,完全跳过了安装后的配置环节。SQL Server 2019的安装向导本身已经很成熟,跟着点下去不会太难,真正的折磨集中在版本选择、实例命名、身份验证方式、TCP/IP协议和防火墙这几件事上。这篇文章把我从下载安装包到远端连接成功再到排坑的完整过程过一遍,适合刚接触SQL Server的新手照着做,也适合装了多遍不成功的同学按章节排查。每一步我都会交代清楚“为什么这么做”,而不是只给一个“下一步”。
1. 装之前把版本这事搞明白,能省一整天时间
很多人的第一反应是去搜索“SQL Server 2019企业版下载”,点进一个奇怪站点,下载一个捆绑了全家桶的安装包,装完发现全是推广软件。SQL Server本身就有官方免费渠道,把版本选对了,后面少走不少弯路。
1.1 Developer版、企业版、标准版、Express怎么选
SQL Server 2019常见版本有四个,我整理了一张表,直接对着选就行。
| 版本 | 是否付费 | 功能范围 | 适合场景 |
|---|---|---|---|
| Developer(开发版) | 免费 | 和企业版完全一致 | 本地开发、学习、测试,授权不允许生产环境 |
| Enterprise(企业版) | 付费/评估版试用180天 | 全部高级功能 | 大型生产环境,需要高可用、高级分析等 |
| Standard(标准版) | 付费 | 核心功能,有部分限制 | 小型业务生产环境 |
| Express(快速版) | 免费 | 功能裁剪严重,数据库最大10GB | 入门学习、轻量应用,够用但限制多 |
个人学习、做毕业设计、本地做实验,直接选Developer版,它和企业版在功能上没有任何区别,包括Always On、内存中OLTP、机器学习服务这些高级特性都有,唯一的限制是授权协议不允许生产部署。公司内部开发环境用Developer版也常见,只要不上生产就合规。如果是给客户交付和线上业务用,再根据预算选标准版或企业版。
Express版最大的限制是单库10GB,练T-SQL够了,但做数据仓库类实验很容易撞墙。Express还有一个单独的版本叫Express with Tools,里面带了管理工具的基础版,不过实际体验不如SSMS完整版,我还是建议统一走“Developer版+独立SSMS”的组合。
1.2 从官方渠道下载正确的安装包
官方下载地址是微软的SQL Server下载页面,路径大概是:微软官网 -> 产品 -> SQL Server -> 下载SQL Server。页面上会列出几个选项:Developer、Standard、Express、Evaluation。Developer点击后会自动下载一个“Downloader”小工具,运行它之后才会真正下载安装包。我这里建议直接下载ISO镜像而不是用下载器,原因是ISO可以保留在本地,以后重装系统、装第二台机器都能复用,不用再跑一次网络下载。
下载器中会有“基本安装”“自定义安装”“下载媒体”三个选项,选择“下载媒体”,勾选ISO格式,这样就能得到一个完整的SQL Server 2019安装镜像。下载过程大约需要2GB左右流量,建议在网络好的时候操作。页面还要求登录微软账号,没有就注册一个,免费的。
注意一个常见现象:搜索结果里很多“SQL Server 2019 企业版 下载”指向的是第三方站点,下载回来的往往是从官网提取的安装包再加了推广模块。规避方法很简单,只认microsoft.com域名,别去源码之家、软件宝库这类平台下载组件类软件。
1.3 环境要求与兼容性
SQL Server 2019官方支持Windows Server 2016以上和Windows 10 1607以上版本,Windows 11也在支持范围内。内存最低要求是Express版1GB、其他版本4GB,实际体验建议8GB起步。硬盘要求6GB可用空间,这是纯软件占用,如果还要装SSMS、示例数据库,我建议预留至少20GB。CPU方面是64位处理器,x64或ARM64都可以,但ARM的兼容性偶尔有坑,x64最稳妥。
安装前最好确认Windows补丁已经更新到最新版本,版本过旧的系统在安装规则检测环节会直接给红叉。如果系统从没更新过补丁,建议先更新并重启再装。另外,SQL Server 2019依赖.NET Framework 4.7.2,Windows 10 1903及其以上的系统自带,旧系统需要手动安装。安装向导会自动帮你装,但提前装好可以减少一次意外的重启环节。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 装之前一定要做的几件事:看似小事,全是大坑
安装SQL Server和装普通软件不太一样,它会在系统里注册很多服务、写入大量环境变量和网络配置,任何一个前置条件没满足,都可能在中途给你一个莫名其妙的错误码。
2.1 卸载与清理旧的SQL Server残留
如果你的机器从来没装过SQL Server,跳过这一节。如果装过其他版本或之前装失败过,必须先做清理。有几种情况:装了SQL Server 2012/2016,想升级到2019,在配置层面可以共存多个版本实例,也就是SQL Server 2016和2019同时存在完全合法。但如果你追求的是“干净的新装”,建议先把旧版本完整卸载。
卸载的常规流程是控制面板里找到对应版本的SQL Server,按顺序卸载客户端组件、数据库引擎服务、共享功能,然后用磁盘清理删掉C盘Program Files下的Microsoft SQL Server残留目录。这里有个细节:SQL Server卸载后常会残留一个叫“SQL Server本机客户端”或“SQL Server Browser”的组件,不一定非要卸载,留着不影响新装;真正要清理的是旧实例的数据目录和日志目录。
如果之前的安装失败过,系统还可能出现“需要重新启动计算机”的提示,这个问题我在后面“完整排查链路”里单独讲,此处先不展开。
2.2 安装前把.NET Framework和VC++运行库准备好
Windows 10/11的系统通常自带.NET Framework 4.8,满足SQL Server 2019的4.7.2要求,不用额外操作。但有些精简版系统或长期不更新的系统会缺失,安装向导虽然会自动带装,但带装过程会触发系统重启,打乱你的安装节奏。稳妥的做法是先打开“设置”里的“可选功能”,检查一下有没有.NET Framework 3.5和4.8,4.8在的话就够用了。
Visual C++ Redistributable 2015-2019运行库是SQL Server很多组件的前置依赖,安装向导会自动检测并安装,但如果你系统里缺少Microsoft Visual C++ 2015-2022 Redistributable,建议提前装好最新版。有一个真实案例:一台很干净的Windows Server 2019,安装向导在“安装规则”阶段报错,提示无法加载VC运行库,手动装完之后立刻通过。
2.3 关闭防病毒软件和规划安装目录
杀毒软件和SQL Server安装流程之间偶尔会互相干扰,最常见的情况是实时监控暂挂了某个服务组件的注册步骤。我不建议卸载杀毒软件,只要在安装期间临时关闭实时保护或排除以下目录即可:C:\Program Files\Microsoft SQL Server、C:\Program Files (x86)\Microsoft SQL Server、C:\Windows\Temp。装完再恢复实时监控。
目录规划上,默认路径C:\Program Files\Microsoft SQL Server对大多数机器是合理的,只有一个例外:C盘空间紧张。如果C盘可用空间低于15GB,我会建议把实例根目录和数据目录都改到D盘或E盘。在安装向导的“功能选择”页面底部有实例根目录和共享功能目录的设置,数据目录在“数据库引擎配置”页面的“数据目录”标签页里改。
3. 安装向导逐步走:每一步都在干什么
环境准备完毕,开始真正的安装。整个向导有十多个界面,看起来很多,但大部分只需要点几个下拉框。我把核心步骤逐个拆开讲,标出每一步背后的意义。
3.1 启动Setup,选择安装类型
用管理员身份运行ISO里的setup.exe(右键 -> 以管理员身份运行),这一步非常重要,不右键管理员运行的话,后面写入注册表时会报权限错误。首先是SQL Server安装中心,左侧有“规划”“安装”“维护”“工具”“资源”“高级”几个入口,选择左侧“安装”,然后点击右侧第一项“全新SQL Server独立安装或向现有安装添加功能”。
这里还有一个入口“使用开发人员版安装SQL Server”或类似名称,本质上也是走全新安装。不要选“从SQL Server早期版本升级”,那是保留旧实例数据做升级的路径,新装不需要。
3.2 产品密钥与许可条款
如果用的是Developer版ISO,这里会自动识别并填入Developer的密钥,界面会显示“指定可用版本”并提示已检测到免费版本。如果你下载的是评估版ISO,则要在下拉框里选择“Enterprise”或“Standard”,并输入对应的评估密钥,或者直接选“Developer”继续。Evaluation版默认有180天试用期,到期后可以升级为正版密钥,或者卸载重装。
许可条款页面勾选“我接受许可条款和隐私声明”,还会有一个“通过Microsoft Update检查更新”的勾选框。建议勾上,SQL Server更新有一部分是通过Windows Update派发的,开着它以后不用手动检查补丁。
“全局规则”和“Microsoft Update”两个页面通常直接下一步,正常情况下会显示检查通过。如果出现错误,界面会明确显示哪个规则挂了,比如“需要重启计算机”或“与SQL Server先前存在于同一功能的实例冲突”,这些我在第六章统一讲。
3.3 功能选择:少装才是干净
功能选择页面是安装过程中最值得花时间看的界面。左侧是功能树,右侧是功能说明和目录设置。核心功能只有“数据库引擎服务”,这个是必须勾选的。它下面默认包含SQL Server复制、全文和语义提取搜索、Data Quality Services、PolyBase查询服务等子项,除了PolyBase,其他保持默认即可。
不需要勾选的组件包括:Analysis Services(SSAS)、Reporting Services(SSRS)、Integration Services(SSIS)。这三个是独立的数据分析、报表、ETL服务,学习阶段用不上,装多了白白吃内存。机器学习服务(数据库内)也是一种可选功能,涉及Python和R扩展,需要的时候再通过“向现有安装添加功能”补装也很方便,不用第一次就全装。
界面底部有两个路径设置:
- 实例根目录:默认C:\Program Files\Microsoft SQL Server\
- 共享功能目录:默认C:\Program Files\Microsoft SQL Server\
如果C盘紧张,把共享功能目录改到其他盘。这里有个兼容性细节:共享功能目录和实例根目录建议不要放在同一个用户自定义目录下,例如实例根目录D:\SQL\Instance、共享功能目录D:\SQL\Shared,不要出现共享目录里嵌套实例目录的情况,某些版本会有问题。
3.4 实例配置:默认实例还是命名实例
实例是SQL Server的核心概念。一台机器上可以装多个SQL Server实例,彼此数据独立,连接时用不同名字区分。安装时会让你选择“默认实例”还是“命名实例”。
默认实例的名字固定为MSSQLSERVER,连接时服务器名称填localhost、.或本机IP都行,默认占用1433端口。命名实例需要你输入一个名字,比如SQL2019,以后连接时写成“localhost\SQL2019”,并且默认使用动态端口,需要SQL Server Browser服务来定位。
我的建议是:如果你就是装在自己电脑上学习,选默认实例就好,简单直接。如果是公司服务器,团队有多套环境共存的需求,就用命名实例区分,比如开发实例DEV、测试实例TEST。两种方式不影响功能,影响的是后续连接方式。
实例ID会默认与实例名一致,不用改。安装目录这里会显示实例根目录,确认路径正确后下一步。
3.5 服务器配置:服务账户与启动类型
这个页面列出了SQL Server相关的服务,重点是“SQL Server数据库引擎”和“SQL Server代理”两个服务。服务账户默认设为NT Service\MSSQLSERVER(一个虚拟账户),这是微软推荐的做法,不用改为本地系统账户或管理员账户,虚拟账户足以运行数据库引擎,又不会授予过高权限。
“启动类型”默认是自动,SQL Server数据库引擎必须是自动,否则每次开机手动启动。SQL Server代理默认是手动,它的作用是执行作业、定时任务等,如果不需要可以继续保持手动。SQL Server Browser服务默认是禁用或手动,如果你选了命名实例,或者需要通过局域网里的实例浏览功能找到SQL Server,就要把Browser服务启动类型改为自动并启动服务。
在这个页面右下角有一个“排序规则”标签,默认是SQL_Latin1_General_CP1_CI_AS。如果你主要处理中文数据,可以考虑改为Chinese_PRC_CI_AS。但要注意,排序规则在安装后很难更改,需要重建系统数据库才能改。生产环境建议装之前就明确;开发学习阶段保持默认也完全没问题。把SQL Server Agent启动类型改成“自动”也是常见操作,省得以后用的时候起不来。
3.6 数据库引擎配置:混合模式与管理员
这个页面是决定你后面能不能顺利连接的关键,也是新手最容易出错的地方。页面上有几个标签页:
“服务器配置”标签页:
- Windows身份验证模式:只允许Windows账号登录。
- 混合模式(SQL Server身份验证和Windows身份验证):既允许Windows账号登录,也允许sa之类的SQL登录名。
- 我建议选“混合模式”,原因很直接:以后写Python、Java、.NET程序连接数据库,绝大多数连接字符串都是拿sql用户名密码连MySQL方式去连SQL Server,用sa或自定义账号,Windows身份验证只适合本机SSMS工具登录。选混合模式,并且马上给内置的sa账号设置一个强密码,这只是初始化密码,等装完再在SSMS里启用sa。
- 在“指定SQL Server管理员”区域,点击“添加当前用户”,Windows系统会把当前登录账号加入sysadmin固定服务器角色。这一点必须做,否则你装完可能连sysadmin都没有,后续很多管理操作都没权限。
“数据目录”标签页:默认的备份目录、数据根目录、日志目录都指向C盘数据库目录。如果想改到D盘,这个页面改。
“TempDB配置”标签页:默认数据文件数量和大小足够,首次安装不需要动。需要注意的只有一点:TempDB的数据文件在SSD机器上不用调整,在HDD上如果并发高,新建查询卡顿明显时才考虑拆分文件。
“内存”标签页:默认“使用推荐内存”,不限制最大。个人电脑上这个设置可能导致SQL Server吃满闲置内存,有点洁癖的可以在这里设一个最大内存,比如16GB机器给8GB,这类设置是SQL Server 2019的,不是传统2016的max server memory设置。
3.7 安装进度与收尾
之后的页面是错误报告(默认不勾选即可)、安装配置规则(自动检查)、准备安装(显示安装摘要)和安装进度页面。安装进度页面时间跨度看机器性能,固态硬盘一般10到20分钟,机械硬盘可能要40分钟。我见过有人在这一步等了10分钟以为死机就关了窗口导致安装中断,建议看到进度条在动就耐心等。装完后界面会显示“已成功完成安装过程”,并列出功能名称、实例ID和状态。
如果你在功能选择里没有装SSMS,安装成功后会有一个提示“安装SQL Server Management Studio”,点击会跳到官网下载页面。先关掉安装向导,接下来单独处理SSMS。
4. SSMS:SQL Server 2019的图形管理工具,需要单独装
SSMS全称是SQL Server Management Studio,它是SQL Server的图形化管理客户端。没有它,你就只能靠命令行工具操作数据库,效率非常低。很多新人以为装完SQL Server就会自动带一个图形界面,结果全盘搜索找不到,以为自己安装失败,这里专门把机制讲清楚。
4.1 为什么安装向导不给你装SSMS
2017年之后,微软把SSMS从SQL Server安装介质里拆出去了,改成独立发布、独立更新。原因很简单:SSMS的发布周期已经和SQL Server的发布周期解耦,SSMS平均每个月都有新版本,而SQL Server本身往往几年才迭代一次。如果SSMS绑在SQL Server安装包里,意味着要么SQL Server安装包频繁更新、要么SSMS版本长期停更,两者都不划算。
所以记住:SQL Server 2019可以安装完成,但SSMS永远不会出现在安装摘要里。这很正常,不是安装失败。
4.2 SSMS安装与首次连接
SSMS下载也是在微软官网,搜索“下载SQL Server Management Studio”就能找到,目前的版本号是SSMS 19.x或更高,向下兼容SQL Server 2019。安装文件是一个几十MB的引导程序,运行后会下载完整安装包并自动安装,安装过程相对简单,接受许可、指定安装目录、点击安装,几分钟搞定。安装前建议先关掉所有已打开的SSMS窗口,旧版SSMS保留的话会覆盖安装,不影响。
装完打开SSMS,会弹一个“连接到服务器”对话框:
- 服务器类型:数据库引擎
- 服务器名称:localhost(默认实例);如果前面装了命名实例SQL2019,填localhost\SQL2019;如果装了Express版,填localhost\SQLEXPRESS
- 身份验证:Windows身份验证(当前Windows账号已经被加进sysadmin了)
点击连接,如果能成功进入界面,左侧对象资源管理器会展开“数据库”“安全性”“服务器对象”“复制”等节点,这就意味着实例已经完全可用。还可以新建查询并运行一条简单的SQL验证版本信息:
sql复制SELECT @@VERSION;
运行结果里会显示“Microsoft SQL Server 2019”和具体的版本号,比如15.0.2000.5,看到这个就说明数据库引擎在正常工作。
4.3 数据库创建的常规步骤
既然SSMS已经连通,顺手把第一个数据库建出来,验证权限和文件路径是否正常。在对象资源管理器右键“数据库” -> “新建数据库”,输入名称TestDB,默认参数直接点击确定,几秒后左侧刷新就会看到一个全新的TestDB数据库。这一步建议所有新手都做一遍,因为很多安装问题在安装界面看的话是看不出来的,真正新建数据库时才暴露出来,比如数据目录没有写权限或者磁盘满了。
如果这一步报错,最常见的是“无法打开物理文件xxx,操作系统错误5(拒绝访问)”,原因是数据目录权限问题。解决方案是给SQL Server服务账户NT Service\MSSQLSERVER添加对数据目录的完全控制权限,在目录属性里操作即可。正常情况下不会遇到。
5. 装完必须做的三件事:sa账号、TCP/IP协议、防火墙
SSMS连接成功只是万里长征第一步。如果你之后要用本机开发连接、或者在同一局域网内用另一台电脑连这台SQL Server,就需要完成本节的三项配置。
5.1 启用sa账号并设置强密码
之前安装过程中要求设置内置的SQL Server管理员sa密码,但SQL Server默认会把sa账号禁用,这是出于安全考虑。要启用它,在SSMS左侧展开“安全性” -> “登录名”,右键sa,选择属性。在“状态”页把“登录”改为“已启用”,然后在“常规”页把密码改成一个更清晰的强密码。还可以用T-SQL直接操作,在SSMS里新建查询窗口执行:
sql复制ALTER LOGIN sa WITH PASSWORD = '你的强密码';
ALTER LOGIN sa ENABLE;
这里有一个建议:即使你平时不用sa登录,也建议启用它并设置一个复杂密码。因为某些应用和服务只认sa账号,比如旧的ASP.NET连接字符串、第三方备份工具等,等需要的时候才发现sa没启用,就比较被动了。启用后右键sa,在“安全性”页面可以看到“服务器角色”里sysadmin已经勾选,不用改动。
测试sa登录的方式:在SSMS里点断开连接,再重新连接,身份验证方式改为“SQL Server身份验证”,登录名填sa,密码填设置的强密码,能登录就说明配置成功。
5.2 开启TCP/IP协议并固定1433端口
SQL Server默认只开启了Shared Memory协议和Named Pipes,用于本机连接够用,但跨机器连接或程序连接时依赖TCP/IP协议,默认可能就是禁用状态,这导致很多外部连接上的问题。
打开“SQL Server配置管理器”,如果系统里没找到,可以在开始菜单搜索“SQLServerManager15.msc”(15表示SQL Server 2019),或者使用命令运行SQLServerManager15.msc。展开“SQL Server网络配置” -> 点击“MSSQLSERVER的协议”(命名实例则显示对应实例名),右右侧看到Shared Memory、Named Pipes、TCP/IP三项,双击TCP/IP,把“已启用”改为“是”。
不要直接关闭窗口,再点TCP/IP属性切换到“IP地址”标签页,拉到最底部“IPAll”,把“TCP端口”填写为1433(清空“TCP动态端口”)。1433是SQL Server默认端口,不改成别的就省去客户端配置。修改完成后,回到“SQL Server服务”节点,右键“SQL Server (MSSQLSERVER)”选择“重新启动”,服务重启后配置生效。
验证方法:打开命令提示符,执行:
bash复制netstat -an | findstr 1433
如果出现TCP 0.0.0.0:1433或用监听状态的条目,就说明TCP/IP已经正常监听。
5.3 防火墙放行1433端口和SQL Browser服务
SQL Server的端口是1433,Windows防火墙默认会挡住外部设备的连接请求,所以本机连接正常、局域网内其他电脑连不上,很常见就是防火墙没放行。如果远程机器上开启了SQL Server 2019安装向导里自带的防火墙配置,也可以自动放行,但我见过不少机器这一步不可靠,还是手动确认更保险。
在Windows防火墙高级设置里,新建入站规则 -> 端口 -> TCP,特定本地端口填写1433,操作为“允许连接”,配置文件域、专用、公用都勾上,名称写SQLServer1433。保存后局域网内的其他电脑就可以用“目标IP地址”或者“目标主机名”来连接了。
如果装的是命名实例,除了1433端口之外还需要放行UDP 1434端口,并启用SQL Server Browser服务。因为命名实例使用动态端口,客户端需要通过UDP 1434向Browser服务询问“某个命名实例当前监听在哪个端口”,如果Browser服务没有启动或UDP 1434被防火墙挡住,客户端就无法定位实例。在SQL Server配置管理器中找到“SQL Server Browser”,右键属性 -> “服务”标签页 -> 启动模式改为“自动”,然后启动服务。防火墙再放行UDP 1434。
这样一个完整的局域网连接矩阵就齐了:数据库引擎服务运行、TCP/IP协议启用、固定端口1433、防火墙放行、SQL Browser服务为命名实例提供定位。任何一环缺失,远程连接都会报五花八门的错误。
6. 安装失败与连接失败的完整排查链路,按顺序查
SQL Server的各种报错看着唬人,实际上原因就那么几类。我把自己遇到过的、以及带学员过程中排在最高频的几种,整理成一条排查链路,你遇到问题时从上往下逐条排除。
6.1 卡在“需要重新启动计算机”时,清注册表PendingFileRenameOperations
这个报错是安装规则检查阶段最常见的失败。系统里存在挂起的文件重命名操作,安装程序不敢继续,只好要求先重启。但很多机器重启之后问题依旧,原因是挂起操作一直赖在注册表里不删除。
路径是:
text复制HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
找到右侧的PendingFileRenameOperations,右键删除它,然后重新运行安装向导。删除时注意:如果有其他软件正在等待重启完成必要操作,删掉这个值可能会让那些软件的状态异常。但绝大多数情况下,这个注册表项里存的都是无关紧要的临时文件重命名,删除没有实际风险。操作前最好先重启一次系统,如果重启后仍然提示,再删注册表项。
6.2 登录报18456:sa没启用或密码错了
错误信息形如“用户'sa'登录失败(错误状态2)”,Connect失败(错误状态6)”等。这里先把状态码解释一下:状态2说明SQL Server能验证用户但是登录被拒绝;状态5说明密码错误;状态6说明sa被禁用。最常见的就两个状态:5和6。
处理方式:先用Windows身份验证登录SSMS,检查“安全性”->“登录名”->sa的“状态”页是否“已启用”,并重新设置密码。再确认SQL Server配置管理器里“身份验证模式”是“混合模式”。如果装完用的是Windows身份验证模式,哪怕sa启用了也登不进来:可以在SSMS里右键服务器 -> 属性 -> “安全性” -> 选择“SQL Server和Windows身份验证模式”,确定后重启SQL Server服务。
6.3 连接报错26/40/2:服务、协议、端口、防火墙逐一排查
这三类报错直接指向网络层面的不通,可能原因按出现频率排列:数据库引擎服务没启动、TCP/IP协议被禁用、服务重启后端口没监听、防火墙拦截。排查顺序如下:
- 打开服务管理器,找到SQL Server (MSSQLSERVER),确认状态是“正在运行”。没运行就启动。
- 打开SQL Server配置管理器,确认TCP/IP协议已启用。
- 执行netstat -an | findstr 1433,确认1433端口有监听。
- 如果是远程连接,在服务器本机防火墙里确认1433入站规则存在并已启用。
- 关闭服务器防火墙测试一次,确认是防火墙问题后再重新开启并精确添加规则。
错误码40的本质是“无法打开到SQL Server的连接——与SQL Server建立连接时发生了与网络相关或特定于实例的错误”,这类报错基本都是上面步骤里的某一环没配置好。部分开发环境是虚拟机场景,还要检查虚拟网络是否允许两台机器互通,比如VMware的NAT模式与外网连通性问题。
6.4 命名实例连不上:SQL Server Browser服务很关键
如果连接字符串写的是“主机名\SQL2019”这样的命名实例,但始终报“在网络上找不到该实例”,而默认实例能正常连接,大概率是SQL Server Browser服务没启动或UDP 1434被防火墙拦截。
命名实例的定位机制是:客户端向目标主机的UDP 1434端口广播一个实例名查询请求,主机的Browser服务应答“这个实例当前监听的TCP端口是某某”。如果没有Browser服务,客户端只能猜默认端口1433,但命名实例默认使用动态端口,不在1433上,所以必然连接失败。修改方式在前面5.3节已经说了,关键是启动SQL Server Browser服务并放行UDP 1434。
还有一种选择是把命名实例的端口也固定为1433或某个自定义端口,这样客户端可以直接指定端口号,不依赖Browser服务。在SQL Server配置管理器里,TCP/IP属性 -> IP地址 -> IPAll -> TCP端口填写固定端口,这样客户端连接字符串写成“tcp:主机名,端口号”也能通。这种方式适合网络环境要求严格、不希望开放UDP1434的生产场景。
最后分享一个习惯性经验:每次装完SQL Server,我都会把版本号、实例名、sa账号是否启用、监听端口、防火墙规则这五项内容记在本地笔记里。别觉得多此一举,几个月后你要重装系统或者换电脑连接这台数据库服务器,这份记录能帮你省掉至少半小时的排查时间。数据库软件装了能跑是第一步,能稳定连接、随时能说清楚自己的配置,才算是真正装明白了。
