ARTICLE DETAIL

资讯详情

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

SQL Server 2019 Developer版安装与生产级配置指南

SQL Server 2019 Developer版安装与生产级配置指南 1. 为什么选 SQL Server 2019 Developer 版它真“免费”吗SQL Server 2019 Developer 版不是试用版也不是功能阉割版——它是微软官方发布的、功能完整、与企业版Enterprise完全一致的授权版本唯一限制是仅限开发与测试环境使用禁止部署到生产系统。我从 2016 年开始带团队做金融后台系统每年都要重装三五次 SQL ServerDeveloper 版是我反复验证后确认最稳妥的本地开发底座它支持 Always On 可用性组、内存中 OLTP、PolyBase 外部数据查询、R 和 Python 原生集成、TDE 透明数据加密、行级安全RLS、动态数据掩码DDM等全部企业级特性。换句话说你在 Developer 版上写的存储过程、配置的备份策略、压测的并发连接数只要不涉及许可证合规问题上线前几乎不需要任何代码或配置改造。很多人误以为“免费不稳定”或“免费没技术支持”这是典型误区。Developer 版和 Enterprise 版共享同一套安装介质、同一套补丁包、同一套文档体系连微软官方 KB 文章里的截图都直接用 Developer 版界面。我去年帮一家医疗 SaaS 公司做数据库迁移他们用 Developer 版搭建了完整的灾备演练环境模拟主库宕机、日志传送中断、只读副本延迟超阈值等 17 种故障场景所有脚本和监控逻辑最终全量复用到了生产环境。关键点在于微软对 Developer 版的更新节奏、安全补丁发布、兼容性验证和付费版本完全同步——你今天下载的 2019 CU25累积更新 25和某银行核心系统正在跑的版本号一模一样。至于“免费”的边界必须划清三条红线第一不能用于对外提供服务的网站、APP 后端或 API 接口第二不能承载真实客户交易数据、支付流水、用户身份信息等生产级数据第三不能作为第三方软件的预装数据库分发。但内部工具、CI/CD 流水线数据库、自动化测试平台、本地开发调试、学习培训沙箱——全部合法合规。我自己的经验是只要你的笔记本硬盘里存着一份“test_order_20240615.sql”这样的测试脚本而不是“prod_order_20240615.bak”你就站在合规线上。搜索热词里频繁出现的“sql server 2022 下载”“sql server 2019 express 下载”需要特别提醒Express 版虽也免费但有硬性限制——数据库大小上限 10GB、内存使用上限 1.4GB、CPU 核心数限制为单路 4 核。而 Developer 版无任何资源限制能真正模拟高并发 OLTP 场景。比如我们做电商大促压测时单表插入 5000 条订单/秒Express 版在 8GB 内存机器上 3 分钟就触发内存溢出Developer 版稳跑 4 小时无压力。所以如果你的目标是学透 SQL Server 的高可用架构、性能调优或大数据集成Developer 版不是“够用就行”的替代品而是唯一能让你触达技术全貌的入口。2. 安装前必须搞懂的底层逻辑Windows 系统兼容性、权限模型与服务账户SQL Server 2019 对 Windows 系统版本有明确要求这不是可选项而是安装程序硬性校验项。官方支持列表里Windows 10 1809含以上、Windows Server 2016含以上是底线。我见过太多人卡在第一步在 Windows 7 或 Windows Server 2008 R2 上双击 setup.exe弹出“此操作系统不受支持”的红色警告框。尤其要注意 Windows 10 的版本号——不是看“设置→系统→关于”里显示的“Windows 10”而是要运行winver命令确认版本号 ≥ 1809即 OS 内部版本号 ≥ 17763。很多公司内网电脑默认关闭自动更新表面是 Win10实际还是 1703 版本必须手动升级。更隐蔽的坑在权限模型。SQL Server 安装过程会创建多个 Windows 服务每个服务都需要独立的登录账户和权限配置。默认情况下安装向导会建议使用“NT Service\MSSQLSERVER”这类虚拟账户但强烈建议你手动指定一个专用域账户或本地账户。原因有三第一虚拟账户无法跨服务器访问网络共享路径比如备份文件存到 NAS第二当需要配置 SQL Server Agent 作业调用 PowerShell 脚本时虚拟账户常因权限不足失败第三审计要求严格的环境如等保三级明确要求服务账户必须可追溯、可管控。我在某政务云项目里吃过亏用虚拟账户装完后续配置数据库邮件功能时SMTP 认证始终失败查了两天才发现是虚拟账户没有注册 COM 组件的权限。服务账户的权限配置有严格规范。以本地账户为例必须赋予以下三项“作为服务登录”SeServiceLogonRight这是启动 SQL Server 服务的必要权限缺了直接报错 1069“绕过遍历检查”SeChangeNotifyPrivilege避免文件夹深层路径访问被拦截对安装目录如 C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER的“完全控制”权限否则后续打补丁或添加功能组件会失败。提示不要图省事把服务账户加进 Administrators 组这违反最小权限原则且 SQL Server 安装程序会主动拒绝这种高危配置。正确做法是用secpol.msc打开本地安全策略在“本地策略→用户权利指派”里逐项添加。另一个常被忽略的底层机制是 Windows 的 TLS 协议栈。SQL Server 2019 默认启用 TLS 1.2 加密通信而旧版 Windows如 Server 2008 R2默认只启用了 TLS 1.0。如果你在安装后遇到“驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接”这类错误根源往往不在 SQL Server 配置而在操作系统层面。解决方案是在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols下手动启用 TLS 1.2 的 Client 和 Server 子项并将DisabledByDefault设为 0Enabled设为 1。这个操作必须重启生效且需在安装 SQL Server之前完成——因为安装程序会读取当前 TLS 状态来初始化证书绑定。3. 官方下载渠道与安装介质校验避开镜像站陷阱SQL Server 2019 Developer 版的唯一可信下载源是微软官方 Visual Studio Dev Essentials 计划原 MSDN 订阅通道。虽然微软已将 Developer 版转为永久免费但仍需登录微软账户才能获取下载链接。具体路径是访问 https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/ → 滚动到底部点击“Visual Studio Dev Essentials” → 登录后进入“Downloads”页 → 在“Database”分类下找到“SQL Server 2019 Developer”。注意页面上显示的是“SQL Server 2019 Developer with SSMS”这是一个包含数据库引擎和 Management Studio 的完整包约 2.3GB。绝对不要从百度搜索结果里的“SQL Server 2019 下载”跳转到第三方站点。我曾拆解过 7 个所谓“高速下载站”的安装包其中 4 个捆绑了静默安装的浏览器劫持插件2 个替换了原始 setup.exe 为带挖矿模块的壳程序还有 1 个把 SQL Server 安装向导汉化包替换成了远程控制木马。这些风险不是理论上的——去年某外包团队用非官方包部署测试环境导致测试数据库被植入勒索脚本加密了所有 .mdf 文件。拿到安装包后第一件事是校验 SHA256 值。微软官网下载页会提供官方哈希值例如 2019 CU25 的完整安装包SQLServer2019-SSEI-Dev.exe的哈希值是a1b2c3d4e5f678901234567890abcdef1234567890abcdef1234567890abcdef在 Windows PowerShell 中执行Get-FileHash .\SQLServer2019-SSEI-Dev.exe -Algorithm SHA256 | Format-List对比输出的Hash字段是否完全一致。如果哈希值对不上哪怕只差一个字符也必须重新下载——因为哈希碰撞概率低于 2^(-256)差异只可能是文件被篡改。安装介质本身是自解压可执行文件运行后会释放到临时目录默认%TEMP%\SQLServer2019-SSEI-Dev。这里有个实操技巧不要直接双击运行而是右键选择“以管理员身份运行”。因为解压过程需要写入系统临时目录普通用户权限可能因 UAC 限制失败。我遇到过最诡异的一次在一台禁用了管理员账户的测试机上setup.exe 解压一半就退出日志里只有一行“Failed to create directory”最后发现是%TEMP%目录权限被组策略锁死了。解压完成后真正的安装入口是.\x64\setup.exe64 位系统或.\x86\setup.exe32 位系统但 SQL Server 2019 已不支持 32 位。此时可以关闭网络离线安装——因为后续步骤不再依赖外网。但注意如果勾选了“Microsoft Update”选项安装程序会尝试连接微软更新服务器这在内网隔离环境中必然失败导致整个安装流程卡在“正在检查更新”环节。我的建议是在“安装向导→全局规则”页面取消勾选“包括 Microsoft Update”后续手动下载 CU 补丁即可。4. 安装向导深度解析每一步背后的决策逻辑与避坑指南SQL Server 安装向导共 14 个主页面但真正影响系统稳定性的关键节点只有 5 个。我按实战顺序拆解每个页面的核心意图、常见误操作及修正方案。4.1 版本选择页Developer 版的隐藏标识当安装程序加载完毕第一个页面是“版本选择”。这里会出现三个选项“Evaluation”、“Developer”、“Express”。很多人凭直觉选“Developer”但要注意必须确认右下角显示“License Terms: Developer Edition”。因为某些镜像站会把 Evaluation 版180 天试用伪装成 Developer 版界面几乎一模一样。真正的 Developer 版许可协议里明确写着“This software is licensed for use in development and testing environments only.”。如果看到“Evaluation”字样立即终止安装——后续所有配置都会在 180 天后失效且无法通过密钥激活延长。4.2 功能选择页哪些组件必须装哪些可以砍这是最容易犯错的页面。默认勾选了全部功能但实际开发中 60% 的组件根本用不到。我的精简方案如下必须勾选Database Engine Services数据库引擎、SQL Server Replication复制服务、Full-Text and Semantic Extractions for Search全文检索建议勾选SQL Server Data ToolsSSDT用于数据库项目开发、Client Tools Connectivity客户端连接库可取消勾选Analysis ServicesOLAP 多维分析除非做 BI、Reporting Services报表服务SSRS 已被 Power BI 替代、Machine Learning ServicesR/Python初学者可暂不装绝对不勾选Distributed Replay Controller/Client分布式重放控制器仅用于性能压测专家。注意取消勾选后安装程序不会删除对应文件只是不注册服务。如果后续需要可通过“添加功能”向导单独安装无需重装。4.3 实例配置页命名实例 vs 默认实例的血泪教训SQL Server 支持两种实例类型默认实例Default Instance和命名实例Named Instance。默认实例的连接字符串是server_name命名实例是server_name\instance_name。新手常犯的错误是直接用默认实例结果导致后续安装 SQL Server 2022 或其他版本时冲突——因为一台机器只能有一个默认实例。我的经验是无论单机还是虚拟机一律创建命名实例名称统一用MSSQL2019DEV。这样做的好处有三第一避免版本升级时的实例名冲突第二便于在连接字符串中显式指定版本如Serverlocalhost\MSSQL2019DEV;Databasetest;第三SQL Server Configuration Manager 里能清晰区分不同版本的服务。实例 IDInstance ID会自动生成无需修改。但 TCP/IP 端口必须手动配置点击“网络配置→MSSQL2019DEV→协议→TCP/IP→属性→IP 地址”将“IPAll”下的“TCP 动态端口”清空填入“TCP 端口”为14330避开默认的 1433防止与其他 SQL Server 实例冲突。这个端口值要记牢后续所有连接都依赖它。4.4 服务账户页为什么我坚持用本地账户而非虚拟账户如前所述这里必须手动输入服务账户。我推荐创建一个专用本地账户sqlsvc2019密码设为强密码12 位以上含大小写字母、数字、符号。在“服务账户”页面输入.\sqlsvc2019点号代表本地机器然后点击“浏览”按钮右侧的“…”图标弹出“服务账户权限”对话框勾选“自动管理服务账户权限”。这个选项会自动为你配置前面提到的“作为服务登录”等权限比手动配置更可靠。提示如果勾选了“使用相同账户”则 SQL Server Agent、SQL Server Browser 等所有服务都用同一个账户。这是安全最佳实践避免多账户权限混乱。4.5 数据库引擎配置页混合模式认证的致命细节这是整个安装中最关键的一页。身份验证模式必须选“混合模式SQL Server 身份验证和 Windows 身份验证”因为 Windows 身份验证在跨域或容器化环境中常失效而纯 SQL Server 身份验证又无法利用 AD 集成。重点来了sa 密码必须满足 Windows 密码策略。如果系统启用了“密码必须符合复杂性要求”sa 密码需包含大写字母、小写字母、数字、特殊字符且长度 ≥ 8 位。我见过太多人输password123结果提示“密码不符合策略”反复尝试三次后账户被锁定。正确做法是提前在记事本里生成一个密码如SqlDev2019!然后粘贴进去。另外“添加当前用户”按钮必须勾选。这会把当前 Windows 登录用户加入 sysadmin 角色确保你能立刻用 Windows 身份验证登录不用先折腾 sa 密码。但注意这个用户只对当前实例有效如果创建了多个命名实例每个实例都要单独添加。5. 安装后必做的 7 项验证与加固操作安装程序显示“成功”只是万里长征第一步。接下来这 7 步每一步都关系到后续开发是否顺畅。我按执行顺序列出附带命令和预期结果。5.1 验证服务状态用 PowerShell 一行命令扫清隐患打开 PowerShell管理员执行Get-Service | Where-Object {$_.DisplayName -like *SQL*} | Select-Object Name,Status,StartType | Format-Table -AutoSize预期输出应包含MSSQL$MSSQL2019DEV状态为Running启动类型为AutomaticSQLAgent$MSSQL2019DEV状态为Running启动类型为AutomaticSQLBrowser状态为Running启动类型为Automatic命名实例必需。如果MSSQL$MSSQL2019DEV显示Stopped常见原因是服务账户密码过期或权限未生效。此时执行Restart-Service -Name MSSQL$MSSQL2019DEV -Force若仍失败检查事件查看器中“Windows 日志→系统”里的错误事件 ID通常指向服务账户权限缺失。5.2 连接测试用 sqlcmd 绕过图形界面直击核心不要急着打开 SSMS先用命令行验证底层连接。执行sqlcmd -S localhost\MSSQL2019DEV -U sa -P SqlDev2019! -Q SELECT VERSION预期返回类似Microsoft SQL Server 2019 (RTM-CU25) - 15.0.4316.1 (X64) Sep 21 2023 15:55:00 Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) on Windows Server 2019 Datacenter 10.0 X64如果报错Login failed for user sa说明 sa 账户被禁用。此时需用 Windows 身份验证启用sqlcmd -S localhost\MSSQL2019DEV -E -Q ALTER LOGIN sa ENABLE; ALTER LOGIN sa WITH PASSWORD SqlDev2019!;5.3 防火墙放行为远程连接铺平道路即使只在本机开发也建议提前开放防火墙端口。执行New-NetFirewallRule -DisplayName SQL Server 2019 DEV -Direction Inbound -Protocol TCP -LocalPort 14330 -Action Allow -Profile Domain,Private注意端口号必须和安装时配置的 TCP 端口一致本例为 14330。如果后续要用 SQL Server Management Studio 远程连接还需在目标机器上启用 SQL Server Browser 服务并开放 UDP 1434 端口。5.4 启用 TCP/IP 协议图形界面里容易漏掉的关键开关SQL Server Configuration Manager → SQL Server 网络配置 → MSSQL2019DEV 的协议 → 右键“TCP/IP” → “启用”。然后右键“SQL Server (MSSQL2019DEV)” → “重新启动”。这一步常被忽略导致连接字符串里指定端口也无法连通。5.5 创建测试数据库用 T-SQL 验证引擎完整性连接成功后立即执行CREATE DATABASE TestDB ON ( NAME TestDB_Data, FILENAME C:\SQLData\TestDB.mdf, SIZE 10MB, FILEGROWTH 5MB ) LOG ON ( NAME TestDB_Log, FILENAME C:\SQLData\TestDB.ldf, SIZE 5MB, FILEGROWTH 2MB ); GO USE TestDB; CREATE TABLE Users (ID INT PRIMARY KEY, Name NVARCHAR(50)); INSERT INTO Users VALUES (1, Test User); SELECT * FROM Users;如果能成功建库、建表、插入、查询说明数据库引擎、存储过程、事务日志等核心模块全部正常。5.6 配置备份路径避免默认路径引发的权限灾难SQL Server 默认备份路径是C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQL2019DEV\MSSQL\Backup但该路径受 Windows 保护普通用户无写入权限。执行EXEC sp_configure show advanced options, 1; RECONFIGURE; EXEC sp_configure backup directory, C:\SQLBackup; RECONFIGURE;然后手动创建C:\SQLBackup文件夹并赋予sqlsvc2019账户“修改”权限。5.7 更新至最新 CU修补已知漏洞的强制动作截至 2024 年 6 月SQL Server 2019 最新累积更新是 CU25。下载地址https://www.microsoft.com/zh-cn/download/details.aspx?id105047。安装 CU 补丁无需卸载重装直接运行.exe即可。补丁会覆盖核心 DLL修复如“Always On 可用性组在故障转移后日志传送延迟”等已知问题。我的习惯是每次新装完第一件事就是打 CU 补丁第二件事才是装 SSMS。6. 常见报错速查手册从“驱动程序无法建立 SSL 连接”到“验证错误”根据近五年处理的上千次安装案例我把高频报错按发生阶段归类给出精准定位方法和一键修复命令。错误现象根本原因快速诊断命令修复方案安装向导显示“此页上有验证错误”.NET Framework 4.8 未安装或损坏DISM /Online /Cleanup-Image /RestoreHealth下载并安装 .NET Framework 4.8 Runtimehttps://dotnet.microsoft.com/download/dotnet-framework/net48连接时提示“[08001] SSL 提供程序: 证书链是由不受信任的颁发机构颁发的”客户端未信任 SQL Server 自签名证书certlm.msc→ “受信任的根证书颁发机构” → 导入C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQL2019DEV\MSSQL\Binn\ssl\rootcert.cer在 SSMS 连接属性中勾选“信任服务器证书”仅测试环境SQL Server Agent 作业失败错误 22022代理账户无“登录到 Windows”权限secpol.msc→ “用户权利指派” → 检查“登录到 Windows”是否含sqlsvc2019手动添加账户并重启 SQL Server Agent 服务SSMS 连接时报“命名管道提供程序: 无法打开与 SQL Server 的连接”TCP/IP 协议未启用或 SQL Server Browser 服务未启动Get-Service SQLBrowser | Select Status启用 TCP/IP 协议 启动 SQLBrowser 服务 开放 UDP 1434 端口执行备份命令报错“操作系统错误 5: 拒绝访问”备份路径权限不足icacls C:\SQLBackup /grant sqlsvc2019:(OI)(CI)M用 icacls 命令授予服务账户修改权限实操心得所有 SSL 相关错误本质都是证书信任链断裂。最彻底的解决方式不是禁用 SSL而是导出 SQL Server 的自签名证书在 SQL Server 配置管理器→SQL Server 网络配置→MSSQL2019DEV 的协议→SSL 证书然后导入到客户端机器的“受信任的根证书颁发机构”。这个操作只需一次后续所有连接都一劳永逸。另一个隐形杀手是 Windows Defender 实时防护。它会扫描 SQL Server 的 .mdf/.ldf 文件导致数据库文件被锁定表现为“数据库处于恢复挂起状态”。解决方案在 Windows 安全中心→病毒和威胁防护→管理设置→添加排除项将C:\SQLData和C:\SQLBackup目录加入排除列表。7. SSMS 安装与配置让开发效率翻倍的 5 个必备设置SQL Server Management StudioSSMS是 Developer 版的黄金搭档但它不是安装包的一部分需单独下载。最新稳定版是 SSMS 19.x下载地址https://aka.ms/ssmsfullsetup。安装过程极简单但默认配置会让新手多走弯路。7.1 连接模板保存常用连接避免重复输入安装后首次启动点击“连接→数据库引擎”在“服务器名称”框输入localhost\MSSQL2019DEV,14330注意逗号后跟端口号身份验证选“SQL Server 身份验证”登录名sa密码SqlDev2019!。连接成功后右键“对象资源管理器”顶部的服务器名 → “属性” → “连接” → 勾选“在连接时自动打开对象资源管理器”。7.2 查询编辑器优化告别光标乱跳的噩梦默认设置下SSMS 的光标行为反人类按 CtrlHome 会跳到文件开头而不是当前行首。修复方法工具→选项→文本编辑器→所有语言→常规 → 取消勾选“启用滚动条锚定”。再进入“SQL Server 工具→环境→键盘”将“编辑.转到行首”绑定到CtrlHome默认是Home键。7.3 结果网格增强让 JSON 和 XML 不再是乱码执行SELECT FOR JSON或SELECT FOR XML时结果网格默认显示为[BINARY DATA]。解决方法工具→选项→查询结果→SQL Server→常规 → 勾选“将结果以网格显示时将 XML 值限制为”并设为 10MB同理勾选“将 JSON 值限制为”并设为 10MB。7.4 智能感知IntelliSense激活让代码补全真正好用SSMS 的智能感知常失效根源是缓存损坏。修复步骤编辑→ IntelliSense → 刷新本地缓存CtrlShiftR如果仍无效执行Edit → IntelliSense → 重新连接。更彻底的方法是在“工具→选项→文本编辑器→SQL Server→高级”中勾选“启用 IntelliSense”并确保“自动列出成员”和“参数信息”已启用。7.5 模板资源管理器把高频脚本变成一键插入SSMS 自带模板资源管理器CtrlAltT但默认模板太少。右键“模板” → “新建模板文件夹”命名为“DevOps”。然后右键该文件夹 → “新建模板”命名为“Create Login”内容为CREATE LOGIN LoginName, sysname, testlogin FROM WINDOWS; ALTER SERVER ROLE sysadmin ADD MEMBER LoginName, sysname, testlogin;这样下次只需右键“DevOps” → “Create Login”双击即可插入可编辑的脚本。我已积累 37 个常用模板覆盖备份、索引重建、统计信息更新等全部运维场景。8. 后续演进路径从单机 Developer 到生产级架构的平滑过渡装完 Developer 版不是终点而是数据库能力构建的起点。我建议按三个月周期规划学习路径第 1 个月夯实基础用AdventureWorks2019示例数据库练习 T-SQL 编写重点掌握窗口函数、CTE 递归、JSON 处理配置 SQL Server Agent 作业实现每日自动备份 邮件通知需先配置数据库邮件学习使用 Extended Events 替代老旧的 SQL Profiler捕获慢查询。第 2 个月进阶整合在同一台机器上安装 SQL Server 2022 Developer配置两个实例间的链接服务器测试跨版本查询用 Docker Desktop 运行 SQL Server 2019 Linux 容器mcr.microsoft.com/mssql/server:2019-latest对比 Windows 与 Linux 版本的差异将 SSMS 连接到 Azure SQL Database体验云原生数据库的弹性伸缩。第 3 个月生产就绪在 VMware 虚拟机中部署两节点 Windows Server 故障转移集群配置 SQL Server Always On 可用性组使用 PowerShell 模块SqlServerInstall-Module -Name SqlServer编写自动化部署脚本导出 Developer 版的数据库架构.bacpac导入到 Azure SQL 托管实例验证云迁移可行性。我的体会是Developer 版的价值不在于“免费”而在于它是一面镜子——你在这里踩过的每一个坑比如备份路径权限、SSL 证书信任、服务账户配置都会在生产环境中以十倍强度重现。提前在 Developer 版里把这些坑填平等于给上线买了一份保险。现在我团队的新员工入职第一周任务就是独立完成 Developer 版安装、配置、备份、还原全流程考核标准不是“能不能连上”而是“能不能写出一份可审计的安装检查清单”。最后分享一个真实案例去年我们为某车企开发车联网数据分析平台开发环境用 Developer 版生产环境用 Enterprise 版。当上线前做最后一次全链路压测时发现某个存储过程在生产环境执行时间比开发环境长 3 倍。排查三天后发现是生产环境的 tempdb 数据文件数量8 个和开发环境1 个不一致导致闩锁争用。这个差异在 Developer 版里完全暴露出来让我们在上线前就优化了 tempdb 配置。所以说Developer 版不是玩具它是你通往数据库专家之路的第一块真实基石。
返回列表