
每年都会遇到这样的人装好了SQL Server 2019双击图标输入管理员密码然后盯着连接失败四个字发愣。其实数据库本身没什么问题问题基本都出在安装时那几个关键选项上。我自己从2008 R2时代就开始用SQL Server这些年帮人排查过的安装问题不下几十次绝大多数都能追溯到版本选错、认证模式没改、协议没启用这三件事上。这篇文章不打算讲太多虚头巴脑的理论而是把SQL Server 2019从下载、选版、安装到建库建表的全流程重新走一遍顺带把我实测中踩过的坑原原本本列出来。如果你正准备在自己的电脑上装一套SQL Server 2019用来学习或者公司服务器上要部署一个新的SQL Server 2019实例这篇文章应该能帮你绕开大部分弯路。如果你是需要详细参考的安装教程直接跟着后面每一步做就可以。1. 为什么SQL Server 2019值得重新学一遍安装1.1 老版本迁移会遇到的变化如果你只用过SQL Server 2008 R2或者2012换到SQL Server 2019之后会觉得又熟悉又陌生。熟悉的是那一套Management Studio的操作逻辑陌生的是安装界面、服务管理方式和一些默认行为都变了。最明显的一个变化是SQL Server 2019的安装介质里不再自带SQL Server Management StudioSSMS了。很多老用户在安装完成后桌面上找不到熟悉的SSMS图标第一反应是是不是装失败了。完整的企业版、标准版、开发版都是这样SSMS需要单独从微软官网下载版本号是独立的更新频率也比数据库引擎快得多。这一点我会在后面的章节展开讲但你先记住安装成功和有没有SSMS没有关系两者是独立的东西。另一个变化是默认安装选项更多了。安装中心里会出现机器学习服务、PolyBase、Java连接等新组件。对普通用户来说这些都不是必须的装上反而拖慢安装速度。我见过有教程让用户全选功能结果一台配置普通的笔记本装了一个多小时还没装完最后机器卡得没法操作。如果你只需要一个能建库、建表、写查询的数据库环境核心组件其实只有数据库引擎服务那一个。1.2 这篇教程的适用人群这篇教程主要覆盖三类人第一类是刚开始学数据库的初学者在Windows上第一次接触SQL Server 2019需要有人告诉他每一步该点什么。第二类是从Oracle、MySQL等其他数据库转过来的开发或运维需要一个快速可用的SQL Server环境做测试没时间也没兴趣研究每个组件的具体用途。第三类是公司里负责部署测试环境的技术人员需要考虑版本许可、远程连接、后续维护这些实际运维问题。我在每个安装步骤后面都会解释一下为什么要这么选而不仅仅是告诉你点下一步。这样你在遇到问题的时候至少知道该从哪个方向排查而不是瞎试。2. 装之前的版本和授权问题想清楚后面能少走一半弯路2.1 四个常见版本怎么选SQL Server 2019的版本矩阵对新手来说有点吓人企业版、标准版、开发版、Web版、Express版还有一个只在云上提供的大规模并行处理版本。但对绝大多数场景你只需要在下面四个版本里选。版本是否免费适用场景需要注意的限制Developer开发版免费开发、测试、教学不允许用作生产环境Express快速版免费小型应用、学习入门每个数据库最大10GB内存限制约1410MBStandard标准版收费小型生产环境功能比企业版精简没有全部高可用特性Enterprise企业版收费中大型企业核心业务功能最全价格最贵个人学习我建议装Developer版。它是功能上没有缩水的完整版本除了许可证协议里明确规定不能用于生产环境之外该有的功能全都有。很多人担心的开发版会不会缺功能完全是多虑的存储过程、分区表、索引、事务复制这些都有够你研究一两年了。如果你的电脑配置比较低或者只是找个库练练SQL语法Express版也够用。但一定要留意它的内存限制SQL Server 2019 Express最多使用1410MB内存数据库文件单个最大10GB。平时练习完全没问题但如果你打算做稍微大一点的性能测试很快会撞到天花板。这时候别犹豫直接换Developer版。2.2 SQL Server 2019 key从哪里来很多人在搜索SQL Server 2019 key其实对Developer版来说根本不需要单独找什么特殊的序列号。在微软官网下载安装介质安装过程中授权模式选择Developer就不需要输入密钥直接使用。这是微软官方提供的免费授权方式不需要去任何不正规的渠道找激活工具。如果你用的是Visual Studio订阅或者公司的MSDN订阅订阅面板里可以找到对应版本的产品密钥。企业内网部署Standard版或Enterprise版一般会有带密钥的商业授权渠道。我个人的建议是个人学习只用Developer免费授权千万不要用网上来路不明的注册机、激活脚本之类的东西。那些东西看着省事实际上很容易给系统带进来恶意软件我有朋友中过招得不偿失。顺便说一句如果你下载的是Evaluation Center评估中心的评估版那个默认是有内置密钥的安装完会开始180天倒计时。到期之后可以通过升级到正式版本或重新评估的方式继续使用这点对临时测试环境很有用。2.3 硬件和系统要求真没那么高但有几个坑微软官方对SQL Server 2019的最低要求写得很保守内存至少2GB磁盘空间至少6GB。实际用下来我给几个朋友的办公笔记本装过8GB内存、i5处理器的机器跑Developer版日常建库建表做查询都挺流畅。但如果你要同时跑SQL Server和Visual Studio打开几十个浏览器标签页那8GB就会比较吃力建议至少16GB。真正的坑不在硬件参数而在下面几点磁盘格式和路径。安装目录所在的盘一定要是NTFS格式FAT32会有文件大小限制某些组件安装会直接失败。安装路径不要带中文和空格。虽然新版对中文路径的兼容性好了很多但后续某些工具和服务解析路径时仍可能出幺蛾子。统一用英文路径最省心尤其是你想用Python、机器学习这些扩展功能的时候。Windows系统版本。Windows 10、Windows 11、Windows Server 2016/2019/2022都可以。但家庭版Windows在部分网络配置功能上有限制远程连接可能遇到防火墙设置不太好搞的局面。安装前把Windows更新做完。我遇到过一次SQL Server安装到一半报错最后发现是系统缺少一个更新补丁导致的。安装前检查一下Windows Update有没有未完成的重要更新能省掉很多麻烦。3. 从ISO到可用实例SQL Server 2019安装全程拆解3.1 下载和解压路径问题从第一步就避开先去微软官网的SQL Server下载页面选择下载SQL Server 2019 Developer或Express版本。下载到的是一个大概几GB的ISO镜像文件。在Windows 10/11上可以直接双击ISO挂载但考虑到后面可能要看日志、查安装文件我习惯上右键选择解压到本地目录。这里有个细节解压路径尽量不要选C盘根目录也不要选带空格的目录比如E:\sqlserver2019\setup这样的路径就很清爽。如果你直接双击ISO里的setup.exe开始安装问题也不大但安装过程中安装程序会释放临时文件到系统临时目录如果你的临时目录所在盘空间不足可能会出现安装到最后失败的情况。建议提前清理一下C盘空间保证至少有15GB空闲。打开安装中心后左侧选择安装然后点击全新SQL Server独立安装或向现有安装添加功能。不要选错成从SQL Server早期版本升级那两个入口进去后的逻辑完全不同。3.2 功能选择别把用不到的组件都装上安装向导到功能选择这一步很多人会在这里犹豫。界面上有一大堆勾选框数据库引擎服务、机器学习服务、Analysis Services、Reporting Services、Integration Services、PolyBase、全文搜索等等。对大多数学习者来说只需要勾选数据库引擎服务。这是SQL Server的核心建库、建表、存储过程、事务备份全都依赖它。下面那个客户端工具连接建议也勾上后面排查问题会用到一些命令行工具。其他组件比如机器学习服务和Java连接没有明确的业务需求之前不要装。它们占用大量磁盘空间安装时间也长而且后面可能要额外配置才有用。全文搜索在特殊场景下有用比如你要对大量文本做中文分词检索。但初学阶段可以先不装完全不影响你理解数据库的基本操作。Analysis Services、Reporting Services这些偏商业智能的组件是另外一个体系的东西入门阶段碰它们只会让你更混乱。3.3 实例配置和端口默认实例与命名实例怎么权衡功能选择后会进入实例配置页面。这里有两个选择默认实例和命名实例。默认实例的实例名是MSSQLSERVER以后连接服务器时直接写机器名或localhost就行。命名实例则要指定一个名字比如MSSQLSERVER2019连接时要写成机器名\实例名这种格式。个人电脑上如果之前没有装过SQL Server选默认实例最省事。默认实例监听1433端口很多工具和连接字符串都默认走这个端口不易出错。如果你机器上已经有了一个SQL Server实例或者打算以后装多个版本并行学习那就用命名实例。命名实例默认不固定端口而是动态获取这会给防火墙和远程连接带来额外麻烦。后面我会讲到怎么给命名实例配置固定端口。路径设置上数据文件目录、日志文件目录建议放到单独的数据盘。尤其是日志文件目录如果和系统盘挤在一起数据库频繁写入时会影响整个系统性能。我一般习惯这样规划数据文件放D盘Data目录日志文件放D盘Log目录备份文件放D盘Backup目录。这些都是数据库后期最容易变的元素提前分开能少很多麻烦。3.4 服务账号和排序规则装完再改就得重建实例实例配置完成后会进入服务器配置页面。这里的服务账号和排序规则是两个容易被忽略但后期很难改的选项。SQL Server相关服务默认使用虚拟账号或NT服务账号运行。初学者不必去手动指定一个本地用户账号保持默认的NT Service\MSSQLSERVER就行。如果你非常想自定义账号比如公司域环境需要指定域账号那一定要确保该账号对数据目录、日志目录有完全控制权限。我在实际部署中见到过因为账号权限不足导致SQL Server服务无法启动的情况重启机器后数据库就再也起不来了。选项卡切换到排序规则默认是SQL_Latin1_General_CP1_CI_AS。对主要以中文业务为主的系统建议安装时切成Chinese_PRC_CI_AS。排序规则影响的是字符比较和排序行为比如你按拼音排序中文姓名时会得到不同的结果。这个选项一旦确定后面要改得通过重建系统数据库的方式来做非常痛苦所以安装时就要想清楚。3.5 数据库引擎配置认证方式和管理员账号到了数据库引擎配置页面你需要做两个重要决定。第一个是身份验证模式。Windows身份验证模式下只有Windows系统用户里的白名单账号能连接SQL Server混合模式会在Windows身份验证之外额外开启一个sa超级管理员账号允许通过用户名密码连接。个人学习我建议选混合模式(SQL Server身份验证和Windows身份验证)因为很多连接字符串、云服务、跨平台工具预设的就是SQL Server账号密码方式而且你也无法确定后续工具对Windows身份验证的支持情况。选混合模式后给sa设置一个强密码比如至少12位、包含大小写字母和数字。第二个是指定SQL Server管理员。这一步其实就是选哪些Windows账号拥有系统管理员权限。最简单可靠的办法是直接点击添加当前用户把当前安装Windows账号加进去。这样之后即使用Windows身份验证连接你也有最高的sysadmin权限。页面下方还有个SQL Server数据目录的选项卡里面会按前面选的数据目录自动填好Data、Log、Backup的路径。确认一下别在C盘就行。然后一路下一步检查通过后开始安装。安装过程一般需要十几分钟期间不要强制关掉向导窗口也别让电脑睡眠。装完会看到一个计算机重启的提示按提示重启后再继续最好。4. 装完先别急着建库SSMS和基础配置必须补上4.1 SSMS单独下载安装安装完成后你会在开始菜单里看到SQL Server 2019配置管理器、SQL Server安装中心等一大堆入口但没有一个叫Management Studio的东西。SQL Server 2019不再把SSMS打包到安装介质里你需要去微软官方下载页面搜索SSMS并单独安装。SSMS最新的版本号可能与SQL Server 2019不是一个数字这很正常。SSMS是向前向后兼容的最新版本可以管理SQL Server 2008到2022的实例。下载下来的安装包叫SSMS-Setup-CHS.exe之类安装过程就是标准的向导式安装几分钟搞定不需要特殊配置。装完后打开SSMS服务器类型选数据库引擎服务器名称填localhost身份验证方式选Windows身份验证点击连接。这一步连接成功说明你的SQL Server 2019实例和SSMS工具都正常工作了。如果连接失败先别急90%是服务没启动。4.2 本地连接验证本地连接成功后建议做两个验证。第一是在SSMS左边的对象资源管理器里展开数据库节点看能否看到系统数据库master、model、msdb、tempdb。能看到这4个库说明数据库引擎服务正常。第二是在顶部菜单栏点新建查询输入下面这段语句然后执行SELECT VERSION;返回的结果里会明确显示Microsoft SQL Server 2019以及具体的内部版本号比如15.0.2000.5。这个信息在你后期排查兼容性问题时非常有用。如果这步出错检查服务是否启动方法是打开SQL Server配置管理器查看SQL Server服务里的SQL Server服务状态是不是正在运行。如果服务没启动右键点击选择启动并把启动模式改成自动。这一步做完再回到SSMS重新连接一般就好使了。4.3 远程连接需要的三处改动如果你只是在电脑本机上用这一节可以跳过。但如果以后要联网访问数据库或者公司需要你搭一个测试环境下面三处改动缺一不可。第一处在SSMS里。右键服务器节点选择属性切到连接页勾选允许远程连接到此服务器。这个选项默认是关闭的我第一次帮人排查远程连接问题时好几位都是卡在这一步。第二处在SQL Server配置管理器里。展开SQL Server网络配置找到你的实例协议确认右侧的TCP/IP协议是已启用状态。Named Pipes可以顺手也启用但TCP/IP才是网络连接的主力。修改之后需要重启SQL Server服务才会生效这步很容易忘记很多人改完直接去连连不上又来问我。第三处防火墙。本机防火墙如果有高级安全Windows Defender防火墙这个程序先打开入站规则新建规则端口选择TCP填入1433允许连接在配置文件页三个区域全选命名随便起一个比如SQL Server 1433。如果实例是命名实例且没有固定端口那你还需要放行UDP 1434端口并确保SQL Server Browser服务在运行。4.4 检查服务状态和日志服务是否正常不是每一项都需要去配置管理器里看。更快的办法是用Windows服务管理工具按WinR输入services.msc回车找到所有名字里带SQL Server的服务。重点看这几个服务名显示名称作用MSSQLSERVERSQL Server (MSSQLSERVER)数据库引擎主体SQLBrowserSQL Server Browser提供命名实例端口解析SQLAgentSQL Server代理作业调度非必需ReportServerSQL Server Reporting Services只有装了SSRS才有如果SQL Agent服务没启动不影响你建库建表但会影响后续自动化备份任务。如果SQL Browser没启动局域网内其他机器按实例名连接时会找不到目标。你可以在服务管理界面里把这两个的启动类型都设为自动避免以后临时要用时才发现没开。日志的查看方式是SSMS对象资源管理器里展开管理-SQL Server日志双击当前日志查看。出现驱动程序相关错误、连接失败记录时这里的日志会有相对详细的描述。装完系统后养成看日志的习惯对你排错能力提升非常明显。5. 基本使用建库、建表、增删改查、备份5.1 用SSMS连上实例熟练之后你每次打开的SSMS默认会弹出连接窗口。如果没弹出文件菜单里有一个连接对象资源管理器可以手动调出来。服务器名称的建议写法是本机默认实例localhost本机命名实例localhost\实例名注意中间是反斜杠远程服务器IP192.168.x.x远程命名实例192.168.x.x\实例名身份验证方式如果选了Windows身份验证直接点击连接即可。如果你是给别的机器上的SQL Server做远程管理而对方没把你的Windows账号加入SQL Server管理员组那你就需要选SQL Server身份验证用sa或对方创建的登录名登录。这里会出现一个很多人都会遇到的情况明明密码是对的却登录不上原因十有八九是第3章里说的混合身份验证模式选了但没有重启服务导致SQL Server身份验证还没真正生效。5.2 数据库和表在SSMS里右键数据库文件夹选择新建数据库输入数据库名称比如TestDB。下方会自动生成名为TestDB和TestDB_log的两个文件分别对应数据文件和日志文件。点击确定一个数据库就建好了。我更推荐用T-SQL脚本操作因为脚本可以复制、保存在脚本文件里以后部署到别的环境直接跑一遍即可。建库语句非常简单CREATE DATABASE TestDB;执行后刷新对象资源管理器TestDB就能看到。值得注意的是一个数据库在物理上至少包含一个.mdf主数据文件和一个.ldf日志文件。你可以在数据库属性的文件页看到它们的位置和初始大小。接着在TestDB下展开表右键选择新建表。设计网页用户表时一般要有用户ID、用户名、邮箱、注册时间这些字段。类型上我会这样选择用户ID用int并设置IDENTITY(1,1)作为自增主键用户名用nvarchar(50)因为要兼容中文邮箱用nvarchar(100)注册时间用datetime2比datetime范围更大精度更高。设计完点击保存输入表名Users。设计窗口顶部有一个生成更改脚本的小按钮点开能看到SQL Server在执行表创建时生成的T-SQL这也可以帮助你理解界面操作背后发生了什么。5.3 增删改查向Users表插入数据的标准写法是INSERT INTO dbo.Users (UserName, Email, RegisterTime) VALUES (N张三, Nzhangsanexample.com, SYSDATETIME());查询很简单SELECT UserName, Email FROM dbo.Users;更新数据要注意加WHERE条件UPDATE dbo.Users SET Email Nzhangsan_newexample.com WHERE UserId 1;删除也同理忘记WHERE条件会把整张表清空。很多初学者第一次发生表数据被全部删除的事故基本都是Delete语句没带条件造成的。所以每次执行更新和删除语句时先把SELECT写出来查一遍确认条件匹配的记录没问题再把SELECT改成UPDATE或DELETE执行。查询这块再强调一个习惯建表后尽量手动加一个非聚集索引或者至少把主键建好。主键会自动生成唯一索引。如果你经常按UserName查询用户可以右键索引新建索引选择UserName列。没有索引的数据表在小数据量时看不出问题数据上了百万条全表扫描和索引查找的查询速度差距可能在几十倍。5.4 备份和恢复备份是数据库使用中最重要的操作之一没有之一。在SSMS里右键TestDB选任务-备份备份类型选完整目标位置选择之前规划好的备份目录确认即可。命令行写法是BACKUP DATABASE TestDB TO DISK NE:\SqlBackup\TestDB.bak WITH INIT, COMPRESSION;WITH COMPRESSION是启用备份压缩生产环境强烈建议加上能明显减少备份文件体积。恢复的时候右键数据库-还原数据库设备选择备份文件即可恢复。恢复时要注意选项页里的覆盖现有数据库如果你是想还原到同名数据库需要勾上覆盖否则会报数据库正在使用之类的错误。建议每周做一次完整备份、每天做一次差异备份这个频率在测试环境足够了。正式生产环境还会有更多策略上的考量但入门阶段你先掌握上面这两种操作就够了。6. 安装和使用中容易翻车的几个点我的实测记录6.1 sa登录不上这是一个被问烂了但依然反复出现的问题。现象是在SSMS里选SQL Server身份验证输入sa和密码后提示登录失败或密码错误。核心原因几乎总是安装时选了Windows身份验证模式或者选了混合模式但改了配置后没有重启服务。SQL Server的身份验证模式是实例级别的配置修改后必须重启实例进程才生效。所以在安装数据库引擎配置的那个页面确认选的是混合模式并且给了sa一个足够复杂的密码这是最关键的预防措施。如果已经装完了才发现没开混合模式还可以抢救一下用Windows身份验证登录SSMS执行下面的语句把认证模式改成混合然后去配置管理器里重启SQL Server服务EXEC xp_instance_regwrite NHKEY_LOCAL_MACHINE, NSoftware\Microsoft\MSSQLServer\MSSQLServer, NLoginMode, REG_DWORD, 2;改完之后重新用sa登录问题基本能解决。注意执行这段命令需要sysadmin权限。6.2 远程连不上远程连不上这个坑我见过一半以上是协议没启用或者防火墙没放行。协议的问题你在SSMS里是看不见的必须打开SQL Server配置管理器。那里有SQL Server网络配置节点展开后确认TCP/IP协议状态是已启用。服务重启之后在命令行里用telnet命令验证端口通不通telnet 192.168.x.x 1433如果显示无法打开主机连接说明网络路径没通排查方向依次是防火墙入站规则、路由器端口映射、目标服务器上SQL Server监听的端口。用命令确认监听端口netstat -ano | findstr 1433看不到1433端口在监听说明SQL Server可能没启用TCP/IP或者服务没起来。看到这个信息排查链路一下就能缩短。6.3 安装程序卡住安装SQL Server 2019过程中卡住的情况也有不少。常见卡住的阶段是Microsoft机器学习服务或PolyBase的安装。我遇到过一次是在安装ML服务时进度条停在三分之一处不动等了一个小时还在那里。最后在功能选择阶段把机器学习服务、PolyBase这些组件全部取消只保留数据库引擎服务安装十分钟内搞定。如果你必须使用机器学习服务那卡住的时候先关闭安装软件卸载已经安装到一半的组件然后检查磁盘空间、关闭杀毒软件再重新安装。杀毒软件对SQL Server安装过程容易误伤安装期间临时关闭实时防护是值得做的一个步骤。另外安装日志默认在C:\Program Files\Microsoft SQL Server\150\Setup Bootstrap\Log目录下。安装失败时打开最新的那一个日志文件查找Error、Fail关键字能定位到绝大部分失败原因。这个路径和细节很少有人提但真遇到安装失败时比到处发帖求助有效得多。6.4 日志文件越来越大很多新手学着用数据库一段时间后发现磁盘空间越来越小最后定位到是日志文件暴涨。原因通常是数据库用的是完整恢复模式Full Recovery并且从未做过日志备份。事务日志越积越大不会自动收缩。最直接的解决办法是为数据库设置定期备份计划。你的库如果没那么重要也可以把恢复模式改成简单模式这样日志会自动截断只保留最近checkpoint之后的事务。右键TestDB属性-选项恢复模式改为简单点确定。日志文件会被截断一次但它物理文件大小不会立刻变小需要收缩文件。右键数据库-任务-收缩-文件文件类型选日志确定即可。但这里我必须强调简单恢复模式的库无法做时间点还原生产库不建议用这种方式替代日志备份。学习阶段可以这么用生产环境还是老老实实每天备份。7. 最后想说的话SQL Server 2019这套安装流程我前前后后帮不同的人装过不下十次每次都会发现新的小问题。如果你安装顺利那很好如果遇到问题不要慌先看服务状态再看日志最后才去网上搜索。这三年我最大的经验就是把安装时的功能选择收敛到最小、认证模式一开始就选对、装完立刻补SSMS并确认远程连接三处配置绝大多数麻烦都可以杜绝。等这第一步走通了后面建库、建表、备份这些基本操作你会发现自己越来越顺手。建议你上手后坚持用T-SQL脚本完成日常操作而不是整天依赖鼠标点界面。界面操作适合查看脚本适合复现和迁移。等你能不打草稿写出一条带参数的查询、能自己解释执行计划里那几张表的含义你就已经超过很多只会用数据库工具点来点去的同事了。