ARTICLE DETAIL

资讯详情

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

SQL Server 2022安装与SSMS连接全攻略:避开08001和18456坑

SQL Server 2022安装与SSMS连接全攻略:避开08001和18456坑 兄弟们装SQL Server这事儿到底有多坑估计不少人深有体会。明明安装进度条走完了打开SSMS却报命名管道提供程序: 无法打开与SQL Server的连接[08001]——那一刻的心情我完全理解。这篇文章就把SQL Server从下载安装到SSMS成功连接这条完整链路拆开揉碎讲一遍包括版本怎么选、安装时哪一步容易埋雷、连接失败到底怎么查争取让每个看完的人都能少走弯路一次搞定。这篇内容适合谁刚接触数据库的学生、要本地搭环境的开发者、准备部署内部系统的运维朋友以及一切被连不上数据库折磨到头秃的人。我会用SQL Server 2022 Developer版作为主示例因为它是当前免费版本里功能最完整的也是热词里被搜得最多的版本之一。全程按真实操作记录来写装完顺手把SSMS配好再把最常见的几个坑提前告诉你。1. 装之前先把版本这事整明白1.1 从Express到Developer版本到底怎么挑很多人一上来就卡在版本选择上因为微软官网那个下载页面列了一堆选项光看名字就眼花。我直接说结论Express版免费的轻量级版本适合学习入门、小规模应用、嵌入式场景。但它有两个硬限制——单个数据库最大10GB内存只能用到约1.4GB。如果你只是练习SQL语法、写几个增删改查的DemoExpress完全够用。但真做开发、做测试10GB的库上限很容易让你半路换环境。Developer版也是免费但功能几乎和旗舰版Standard/Enterprise一样完整唯一的限制是仅限非生产环境。对于绝大多数个人开发者、学生、临时测试环境它就是最优解——功能不被阉割数据库大小和内存都没有Express那种硬限制。微软允许开发者合法免费使用不存在所谓的破解版需求。Standard版及以上商业环境才需要考虑。它们是收费的功能上多了高可用、BI分析、企业级安全等特性。普通个人项目买这个纯属浪费。网上热词里出现sql server 2022破解版免费下载安装我在这里多嘴一句别去下什么破解版官方Developer版就是免费且功能完整的你去找破解版不但浪费时间还大概率踩到捆绑恶意软件的坑。这是很多人都不知道的一个点——微软真的给了个人开发者一条免费通道没必要绕远路。那MySQL和SQL Server怎么选经常有人问。一句话概括MySQL轻、跨平台、在Web开发里生态特别好SQL Server在Windows生态内集成度高、管理工具SSMS强大、对T-SQL和商业智能场景支持成熟。如果你用的是Windows环境、想好好体验一把企业级数据库管理的感受SQL Server是不错的选择如果项目要部署到Linux服务器或者追求极致的轻量那MySQL更顺手。1.2 下载渠道别走歪认准官方就够了下载这个环节我真的见过太多人踩坑。百度一搜SQL Server下载前面几排全部是第三方下载站、高速下载器、绿色破解版你点进去装完回头发现电脑莫名其妙多了一堆全家桶。正确姿势只有一个去微软官方站点下载。打开搜索引擎搜SQL Server 2022 Developer download或者Download SQL Server认准learn.microsoft.com域名下的下载页面。微软官方页面上会提供SQL Server 2022 Developer安装包和SSMS独立下载的SQL Server Management Studio两个是分开下载的这个要记住——很多人以为装完SQL Server就自带SSMS了其实不是。下载时还会看到一个叫SQL Server 2022 Express的选项还有LocalDB之类的东西。它们是给不同场景用的LocalDB是极简版的嵌入式实例适合快速跑测试但没有完整的Windows服务管理。这次咱们的核心场景是用SSMS连数据库所以优先下载Developer版完整安装。安装包大小在几百MB到1GB左右2022版大概700MB上下看你的网络情况。下载完成后建议先校验一下文件有没有损坏——右键属性看看数字签名是否正常这一步虽然不强制但为了安全值得花十秒钟。签名正常的安装包右下角发布者那一行会显示Microsoft Corporation。1.3 安装前的最后检查别让系统拖后腿正式开始装之前建议先过一遍这几项系统版本SQL Server 2022要求64位Windows 10/11或对应的Windows Server32位系统不支持的。怎么看系统位数右键此电脑→属性看系统类型。内存和磁盘官方最低要求是1GB内存、6GB磁盘空间。但说句实在话你要跑SSMS连上数据库操作2GB内存会非常吃力至少4GB起步、8GB安逸。磁盘建议预留15GB以上因为装完数据库引擎、工具组件、示例数据库都会占空间。.NET Framework安装向导一般会自动拉取所需组件但如果你系统比较精简可能要先手动装一下.NET Framework 4.8否则安装时会卡在前置检查。关闭其他数据库服务如果电脑上已经装了MySQL或者旧版SQL Server建议先把它们停掉或者确认端口不冲突免得装的时候服务起不来。当然SQL Server默认实例用1433端口MySQL是3306一般不冲突但旧版SQL Server的残留实例会有影响。Windows用户权限安装SQL Server需要管理员权限右键安装包选以管理员身份运行别直接双击。就这么一个门槛卡住过不知道多少人。注意如果电脑名字包含中文或者特殊字符建议在安装前改一下计算机名改成纯英文的。因为后边要用的服务器名称经常就是计算机名\实例名如果名字里带中文SSMS连接的时候偶尔会出编码问题排查起来很烦。2. SQL Server 2022安装全程实录2.1 安装类型选自定义运行安装包后你看到的第一个界面是SQL Server安装中心。这里通常有几个入口全新安装、从旧版本升级、安装SSMS等。我第一次装的时候直接点的基本Basic类型以为省事。结果基本安装装的是Express版而且装完后没有给你任何配置选项路径也默认到了C盘后续想改配置就很难受。所以这次我的建议是点自定义或者全新SQL Server独立安装。虽然多几步操作但你能看到每一步在干什么后续维护心里也有数。选自定义后向导会让你选安装媒体和下载位置。这里可以直接用已经下载好的安装包也可以选择下载媒体让系统帮你下载。网络不太好或者没耐心的朋友建议直接选本地安装包避免重复下载浪费时间。安装规则检查那一步如果提示重启计算机待办事项你就先去重启一下别硬着头皮往下走——有些Windows更新后的重启待办会让SQL Server安装器直接报错。老手都懂装这类重量级软件前系统越干净越好。2.2 实例配置默认实例还是命名实例接下来就是功能选择和实例配置环节这也是需要花心思的关键节点。功能选择里我建议新手直接选数据库引擎服务、SQL Server复制、客户端工具连接这几项别贪多。像Integration Services、Analysis Services这些现在用不到勾了也白勾还白白占磁盘空间和资源。特别是Analysis Services占内存大户个人电脑装了很容易让系统变卡。实例配置这块要注意默认实例的实例名是MSSQLSERVER访问方式是服务器名就能连接命名实例是自定义的比如SQL2022访问方式是计算机名\SQL2022。我个人强烈推荐普通用户选默认实例。原因很简单默认实例连起来不带斜杠不容易写错。你现在选了命名实例每次用SSMS连接都要记得敲你的电脑名\实例名这个写错的概率在初学者里极高。还有一点当然后面可以通过配置改但改实例名很容易搞得服务起不来所以一开始就别给自己埋坑。再往下的服务账户配置保持默认就ok。如果你是域环境或者对安全有特殊要求可以单独给SQL Server服务建一个专用账户但个人用完全没这个必要。你只需要注意一件事把SQL Server代理服务的启动类型也改成自动——默认是手动等你要用定时任务、自动备份的时候手动启动会给你带来额外困扰。2.3 数据库引擎配置身份验证模式和sa账号到数据库引擎配置这一步会出现两个关键选项身份验证模式有Windows身份验证模式和混合模式。Windows身份验证模式下只有Windows系统账户才能登录数据库混合模式下既可以用Windows账户也可以用SQL Server自己的账号比如sa登录。连接问题十有八九出在这里。我的建议是选混合模式。为什么因为Windows认证模式在你本地用还行一旦你要远程连接、用代码连接比如Java/Python/Node通过连接字符串访问就会非常麻烦还得做Windows用户的权限映射。混用模式一步到位省得后面改配置。选混合模式后系统会强制你给内置的sa账号设一个密码——这个密码一定要记住而且别用弱口令比如123456这是无数人栽过的跟头。另外在数据目录标签页强烈建议把数据文件、日志文件目录改到非系统盘。默认都在C盘Program Files下系统盘读写压力大不说重装系统时数据就全没了。我一般会在D盘建一个SQLData目录专门放数据库文件和备份文件。虽然这个操作多花两分钟但以后遭遇到系统崩溃时你会感谢自己。校验规则保持默认的SQL_Latin1_General_CP1_CI_AS就可以除非你有明确的业务需要否则别动。2.4 装完第一件事验证服务是否真的起来安装过程大概十几分钟取决于机器性能。安装完成后不要急着打开SSMS实际上这时候还没装SSMS先做两个快速检查第一看Windows服务。按WinR输入services.msc找到SQL ServerMSSQLSERVER这个服务确认状态是正在运行。如果没运行右键启动服务类型是自动的话开机就自己启动了。第二是SQL Server配置管理器。SQL Server 2022通常已经预配置好但配置管理器是后续排查连接问题的主阵地后面章节会细说。可以在Windows开始菜单搜SQL Server 2022配置管理器。打开后确认SQL Server服务节点下有SQL Server (MSSQLSERVER)状态为正在运行并且SQL Server Browser也要有——SQL Server Browser服务的作用是提供实例名到端口号的解析特别是命名实例连接时基本离不开它。如果这两项都正常说明数据库引擎本身没问题接下来才轮到SSMS登场。3. SSMS安装与首次连接3.1 SSMS该装哪个版本别再傻傻分不清SQL Server Management StudioSSMS是微软提供的一款数据库图形化管理工具功能覆盖查询、设计表、管理用户、备份恢复、性能监视等等。它和SQL Server是分开安装的你不用为了SSMS装某个特定版本的SQL Server也不用找什么专门的SSMS安装包下载渠道——还是在官网搜SQL Server Management Studio download就行。版本怎么选直接用最新版本就好。现在的SSMS版本号走到20.x了它向前兼容所有受支持的SQL Server实例2016、2019、2022都没问题。热词里有人问sql server2022用什么版本的ssms答案就是用SSMS 20.x以上版本比如SSMS 20.1、21.0都能完美连接SQL Server 2022。不要因为自己的数据库Server版本老就选旧版SSMS完全没必要。SSMS安装包大约600MB左右安装过程就是一路Next没有太多可选配置。装上之后首次启动它会让你输入服务器名称并连接。有一个细节值得注意SSMS 20开始默认的深色主题还挺养眼的如果喜欢浅色界面可以在工具→选项→环境里改。这个纯看个人喜好不影响功能。3.2 第一次连接服务器名称到底怎么写打开SSMS第一个界面就是连接到服务器。这里就是最容易卡壳的地方。服务器名称常见写法有这几种默认实例localhost、.、127.0.0.1或者电脑名四种写法都指向本机的默认实例。命名实例电脑名\实例名比如DESKTOP-ABC123\SQL2022。如果是远程连接IP地址、IP地址\实例名、IP地址,端口号比如192.168.1.100,1433。对于刚装完的本机环境直接在服务器名称栏输入一个点.然后点连接这是最快的验证方式。身份验证选Windows身份验证即可——装的时候选了混合模式但你现在是本机Windows用户用Windows认证一定能连上。如果你看到已成功连接到服务器恭喜最难的坎已经过了。但如果你点连接后弹窗报错别慌下一章专门解决这个问题。3.3 Windows认证能连SQL认证连不上的原因一个很常见的现象是Windows认证秒连但用sa账号登录就报18456登录失败。这个问题本质上是sa账号没有被真正启用或者密码不对。SQL Server在默认安装后sa账号通常是禁用的。即使你安装时设置了sa密码这个账号也需要手动启用才能用。步骤是先用Windows认证连上数据库 → 在对象资源管理器中展开安全性 → 登录名 → 右键sa → 属性 → 状态标签页 → 把登录改为启用。然后点常规标签页重新设置一遍密码。还有一个经常被忽略的点登录名sa默认关联的数据库可能是masters你修改状态后可能需要重启SQL Server服务才生效。在服务管理器或者配置管理器里右键重启就行几秒钟的事。注意启用sa账号后默认情况下密码策略会要求足够强度的密码。别嫌麻烦数据库最怕的就是弱口令公网环境下sa弱口令被爆破是极高频的安全事件。3.4 用一段SQL验证环境可用连接成功之后别急着关掉。在SSMS里点新建查询输入下面这段SQL感受一下环境是否一切正常SELECT VERSION; GO SELECT name, database_id, create_date FROM sys.databases; GO SELECT 1 AS test;VERSION会返回SQL Server的版本信息能看到当前是Developer版第二个查询列出当前实例下的所有系统数据库比如master、model、msdb、tempdb第三个查询就是一个简单的确认能返回结果说明查询引擎在工作。我每次装完新环境都要跑一遍这三句确认安装健康后才会继续往里放正式业务库。如果sys.databases返回的信息里还有之前遗留的旧数据库说明这台机器可能装过其他版本的SQL Server后面做端口和实例冲突排查时要多留个心眼。4. 连接失败排查从08001到184564.1 08001命名管道错误十个人里有七个倒在这网上搜索SQL Server安装教程的人相当一部分最后都卡在了这个报错上[08001] [Microsoft][ODBC Driver 18 for SQL Server]命名管道提供程序: 无法打开与SQL Server的连接。这个报错翻译成人话就是客户端尝试通过命名管道方式连接到SQL Server但是找不到或者连不上目标实例。常见原因有三个第一TCP/IP协议没启用。SQL Server默认安装时网络协议里TCP/IP和命名管道都有但TCP/IP协议在某些版本的默认配置下并没有真正开启特别是命名实例或者手动改过配置的场景。解决办法打开SQL Server配置管理器 → SQL Server网络配置 → 找到对应实例的协议 → 右键TCP/IP → 选择启用。然后重启SQL Server服务。这一步做完能解决大半问题。第二SQL Server服务压根没起来。去Windows服务管理器里看一眼如果SQL ServerMSSQLSERVER状态是停止那就右键启动。有时候服务启动失败要去看Windows事件查看器里的错误日志最常见的原因是权限不足或数据库文件损坏。第三防火墙拦住了。本机连接通常不走防火墙但如果你是通过IP远程连接Windows防火墙默认会拦掉1433端口。需要手动加一条入站规则允许TCP 1433端口。如果是连接远程机器或者连接字符串里指定了tcp:前缀那命名管道的问题会更明显。个人本机环境启用TCP/IP之后基本就好了。4.2 TCP/IP协议、1433端口和防火墙三样挨个查远程连接场景下的排查顺序我建议按这个链路来第一步确认SQL Server的TCP/IP协议已启用。SSMS里用localhost能连不代表远程能连。右键SQL Server配置管理器的客户端协议确认TCP/IP也在启用状态。第二步确认1433端口被正确监听。打开命令提示符执行netstat -ano | findstr 1433如果看到TCP 0.0.0.0:1433 LISTENING的字样说明SQL Server在正常监听1433端口。如果没有说明TCP/IP没启用或者实例是通过动态端口在跑查看配置管理器里TCP/IP属性→IP地址→IPAll→TCP动态端口看看有没有赋值端口。第三步防火墙放行端口。在管理员命令提示符中执行netsh advfirewall firewall add rule nameSQL Server dirin protocolTCP localport1433 actionallow这条命令会添加一条名为SQL Server的入站规则放行1433端口。如果你不想用命令也可以在Windows防火墙高级设置里手动新建规则。注意SQL Server Browser服务用的是UDP 1434端口如果通过命名实例远程连接UDP 1434也需要放行。第四步测试端口连通性。在能ping通目标机器的前提下执行telnet 目标IP 1433如果光标全黑不报错说明端口通了。如果提示无法打开连接说明还是被防火墙或网络策略挡着。针对SQL Server 2022的新特性有些企业网络还要求额外开放更高端口的TCP动态端口不过这个属于进阶排查普通场景下1433就够用了。4.3 登录失败18456不是服务问题是权限问题这个报错信息是用户sa登录失败或者You are not authorized to login。它和08001最大的区别是——网络和服务都是通的只是身份验证环节没过。遇到这个报错按顺序排查确认你用的账户是sa还是Windows用户。sa账户需要确认“已启用”前面提过。确认密码没输错。SQL Server没有找回密码功能密码忘了只能以Windows管理员身份连接后用ALTER LOGIN重设。确认登录名有没有被锁定。连续输错多次密码会触发账户锁定策略在sa属性里可以查看。查看SQL Server错误日志。SSMS连接失败后SQL Server服务端会记录错误日志错误代码后面会带波浪号和数字比如18456状态1密码错误、状态2禁用账号、状态3用户不存在。这个状态代码是排查的关键。一般的处理办法是先用Windows认证连上然后执行ALTER LOGIN sa WITH PASSWORD 新密码; ALTER LOGIN sa ENABLE;执行完重启SQL Server服务再次用sa连接。这个方法基本上能解决90%的18456问题。4.4 内存占用异常、旧版本残留、数据库删除不掉附赠几个高频坑SQL Server安装好之后本机内存占用飙高也是常见疑虑。很多人在任务管理器里看到一个叫SQL Server Windows NT的进程占着几个GB内存以为中毒了或者有问题。这个其实是SQL Server设计如此——它会把可用的物理内存尽量都作为缓冲池用来缓存数据页以减少磁盘IO。这是正常现象不是内存泄漏它会随着其他程序需要内存而自动释放。如果你实在不想让它占太多可以在SSMS里右键服务器→属性→内存设置最大服务器内存比如设成2GB能缓解一下。热词里还有sql server 2008不能删除数据库——那大概率是数据库处于单用户模式或者有会话占用。可以右键数据库→属性→选项→状态→限制访问改为多用户或者执行ALTER DATABASE 数据库名 SET MULTI_USER。如果还是删不掉把相关会话杀掉再试。遇到过SQL Server 2008这种老版本的朋友我多说一句别在新机器上装2008了它早已停止技术支持安全性没保障功能也落后太多。现在用2022版你能体验到更快的查询性能、更完善的JSON支持和更好的安全特性学习成本反而比老版本更低。4.5 故障速查表报错/现象可能原因解决方案08001命名管道无法打开TCP/IP未启用、服务未启动、防火墙拦截启用TCP/IP并重启服务检查服务状态放行1433端口18456登录失败sa未启用、密码错误、登录账户锁定ALTER LOGIN启用/改密确认密码策略重启SQL服务超时时间已到网络不通、防火墙拦截、实例名写错用telnet测试端口确认服务器名称写法找不到SQL Server实例SQL Server Browser服务未运行启动SQL Server Browser服务放行UDP 1434无法连接到LOCALDBLocalDB实例未启动命令行执行sqllocaldb start MSSQLLocalDB内存占用过高SQL Server缓冲池机制SSMS中设置最大服务器内存服务启动后又自动停止权限不足或数据库文件损坏检查Windows事件日志以管理员身份运行重新初始化实例这张表我建议收藏一下大部分新手问题都能在这张表里找到答案。写在最后SQL Server的安装和SSMS连接本质上是两件事一个要确保数据库引擎服务正常运转另一个要确保客户端能通过合适的协议和账号访问到它。把这两件事分开理解排查问题思路就会清爽很多。根据我个人的经验安装本身不难麻烦的是那些装完了连不上的隐性配置——TCP/IP协议、sa账号状态、防火墙端口这三样东西在我接触过的各种项目里几乎百分之百出现过。所以这篇文章花了大篇幅写它们。最后再分享一个小技巧如果你打算长期在这台电脑上做开发建议给SQL Server的1433端口分配一个固定IP而不是默认监听所有IP这能在安全性和多网卡环境下省掉不少麻烦。在SQL Server配置管理器里TCP/IP协议的IP地址列表中有对应网卡的IP条目填入具体IP后重启服务即可。这个属于进阶操作但对后续的稳定性有帮助。搞定了环境就赶紧往里放数据吧——SQL Server这种数据库真正的好戏在后头等你开始写复杂查询、调性能的时候才会发现今天装的这套环境是值的。
返回列表