Sql Server 服务不能启动
只有关闭了TCP/IP才能启动Sql Server 服务。

网上的办法 说:关闭VIA协议,但是我是Sql Server2022,没有这个协议。
我要启用TCP/IP协议,不能关。网上说,是因为Sql Server的端口被占用了。
我查了一下端口,没有占用。最后看到这位大佬,它情况跟我差不多,看它的贴子,获得灵感。
https://www.cnblogs.com/love-DanDan/p/17667524.html
因为我之前网卡也经常发病!明明是刚开机,运行VSS项目老是提示端口被占用。
我就把我全部的网卡都禁用了,然后启用TCP/IP协议,重启Sql Server服务就成功了,然后再把网卡启用。
网上的帖子,搜10有8个是一样的,还有一个是答非所问,所以写了这个贴子,留给后来人。
===================== 2024.01.15 ==============================
如果禁用了TCP/IP协议就可以启动Sqlserver 服务,那么可以到 事件查看器 里看windows的日志。
-
首先清除日志
图片.png -
重新启动SqlServer服务
图片.png -
再次查看日志,看最早一条错误日志(如果没显示,记得刷新一下)
图片.png -
由此可以确定是TCP/IP的问题
图片.png -
找到错误的ip,禁用掉!
图片.png 保存后,重启Sqlsever 服务。
附加如何清理 TCP/IP 里的IP
有时候,你电脑连的连的网多了,这个 TCP/IP里的IP会越来越多
-
打开注册表
找到
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Tcp
我的SqlServer 版本是 SqlServer 2022,不同版本MSSQL16.MSSQLSERVER的数字不一样(只是数字)。
注册表文件夹TCP下就是TCP/IP里的IP。
1a25eff7c3d2ddc14df965f54de770c.png 打开SqlServer Manage 的TCP/IP 属性
记录一下你想清里的IP。
我觉得,清理注册表之前,要先把SqlServer 的服务关掉。删除注册表,再打开TCP/IP,里面就没那么多IP了,重启 TCP/IP ,重启 Sql Server 服务就好了。





