win10/win11无法连接sql server的原因及解决方法

糟糕,Win1 0/Win1 1 无法连接到 SQL Server。
其实问题很多,但主要问题只有几个。
您可以一次尝试一个。
我已经多次帮助我的同事解决这个问题,并将告诉你我遇到的所有陷阱。

上周一位客户问我,尽管有 SQL Server,他的 Win1 1 系统还是崩溃了。
经过一番挣扎,他终于发现端口被防火墙封锁了。
你先要检查这五点,别担心。

首先,网络和端口是最常见的问题。
1 .防火墙!打开Windows自带的防火墙,检查1 4 3 3 端口是否被屏蔽。
如果被阻止,请快速单击“允许应用程序通过防火墙”并创建新规则以允许SQL Server通过。
如果您安装了其他安全软件,则需要检查它们。
2 . TCP/IP 协议未激活。
打开SQL Server配置管理器,找到网络配置并确认TCP/IP协议已启用。
本地连接可能默认启用,但必须手动设置远程连接端口(例如 1 4 3 3 )以匹配您在连接时指定的端口。
3 、远程连接未打开。
右键单击您的 SQL Server 实例,选择“属性”。
有一个“连接”选项卡。
确保选中“允许远程连接到此服务器”。
如果不勾选该选项,则只能本地连接。

第二:服务状态。
1 . SQL Server 服务未运行。
打开“服务”管理器(搜索“services.msc”)并查找 MSSQLSERVER(默认实例)或您的命名实例(例如 MSSQL$SQLEXPRESS)以查看它是否正在“运行”。
如果它没有运行,请右键单击启动它,并将其设置为自动启动。
2 . SQL Server Browser 服务未启用。
要连接命名实例,必须启动该服务。
如果它没有运行,客户端在无法连接到实例时会感到困惑。
首先启动它,然后将其设置为自动。

第三,TLS兼容性问题。
这是核心中的核心。
我遇到过的最大的陷阱就是这个东西。
1 . 带有前导零的东西。
Windows 1 0 1 5 1 1 (Build 1 6 07 )及更高版本已使用 KB4 5 3 7 8 06 进行了修补,解决了 TLS 前导零问题。
但是,如果您的客户端系统版本和服务器版本不匹配(反之亦然),您在连接时将收到“远程主机已强制关闭连接”的消息。
您必须在日志中查找特定的错误消息,但这可能就是原因。
2 、如何解决?
首先更新系统。
客户端和服务器均已更新至此修补版本。
这是最安全的。

暂时确实没有办法解决。
可以通过组策略或 PowerShell 脚本禁用 TLS_DHE 密码套件。
具体命令我以前运行过,但记不太清了。
如果懒得换系统,可以搜索“Disable TLS_DHE Cipher Suite Win1 0”。

四、认证和权限。
1 、身份验证不正确。
如果您使用 Windows 身份验证进行连接,您必须通过以下方式访问此服务器具有域管理员或本地管理员权限。
使用SQL Server身份验证进行连接,并且用户名和密码正确。
我有一个愚蠢的同事,在编写连接字符串时盲目地输入了用户名和密码。
他无法连接,因为服务器出现问题。
2 . 实例名称拼写错误。
命名实例时(例如 SERVER\SQLEXPRESS),实例名称必须拼写正确。
默认实例可以不用写,但是如果连接非默认实例,写错了就没用了。

第五,依赖组件缺失。
1 . 未安装.NET Framework/VC运行库。
SQL Server 客户端连接依赖于它,并且必须安装适当的版本。
特别是对于 .NET Framework,运行较低版本的服务器可能需要安装 .NET Framework 3 .5 (查找“打开或关闭 Windows 功能”并选中该框)。
2 .驱动程序不兼容。
ODBC/JDBC 驱动程序必须与您的 SQL Server 版本匹配。
我连接到 Linux 上的 SQL Server 并使用 SQL Server 2 01 9 驱动程序。
但是,由于无法连接,我将驱动程序切换到适当的 Linux 版本来完成此操作。

综上所述,你应该按照这个顺序一一检查。
防火墙和端口是最简单的,服务状态其次,TLS 兼容性是最困难的,但大多数情况下身份验证权限和依赖组件取决于运气。
我已经帮助人们解决了该问题 3 次,并且在所有 3 次案例中都没有出现防火墙或 TLS 问题。
因此,您应该重点关注这两个领域。
如果你实在搞不明白,请将错误信息、你的连接字符串和系统版本发给我,我帮你分析。

sql连接不上服务器无法打开sql server的连接

要解决 SQL 无法连接到服务器的问题,您必须一步一步地进行。

1 .服务器名称是否正确? 首先检查服务器名称是否填写正确。
它的格式应为“完整的计算机名称,实例名称”。
如何检查?右键单击我的电脑并选择属性。
您可以在系统属性中查看完整的计算机名称。
如果你犯了错误,请迅速改正。

我以前也犯过这个错误。
我输入了令人困惑的名称,但无法连接。
修好之后,嘿,一切马上就可以了。

2 SQL服务是否开启? 检查几个关键服务是否正在运行。


配置管理器:打开 SQLServer 配置管理器并找到以下服务:
SQLServer服务(例如sql2 01 2 )
SQLServerBrowser 服务
SQLServer代理服务 如果未启动,请右键单击并单击“启动”。


服务管理器:按Win+R,输入Services.msc,找到名为“SQLServer”的服务,检查状态是否为“正在运行”。

我记得有一次 SQLServerBrowser 服务无法启动并且实例无法连接。
花了很长时间。

3 网络和防火墙
网络不可用:尝试使用 ping 命令。
例如,ping 服务器的 IP 地址。
如果无法连接,可能是网线或者服务器的网络设置有问题。

防火墙是否阻止了此操作?默认情况下,SQL Server 使用端口 1 4 3 3 ,防火墙必须允许该端口。
您可以尝试暂时关闭防火墙看看是否正常,或者添加允许1 4 3 3 端口通过的入站规则。

我装完系统一天,防火墙没开规则,立马就屏蔽了1 4 3 3 ,客户端根本就碰不到。

4 数据库配置和连接字符串
IP、端口、用户名和密码是否正确?确保数据库服务器的IP地址、端口号、用户名和密码正确。
如果您使用的是命名实例,则实例名称不能不正确。

连接字符串:查看程序中的连接字符串(例如Server=服务器名称;Database=数据库名称数据;用户ID=用户名;密码=密码;)。
设置必须与数据库配置匹配。

我之前更改了IP地址,但是连接字符串没有相应更改,导致连接失败。
当时确实很烦人。

5 尝试使用管理员帐户 使用管理员帐户(例如sa)尝试连接数据库。
如果管理员可以连接,则说明源账户没有足够的权限,需要在数据库中添加源账户的权限或更改登录方式。

有一次我无法连接到我的常规帐户。
我更改了帐户并立即连接。
您确实需要注意权限。

6 重新启动 SQL 服务。
如果前面的步骤都没有帮助,请尝试重新启动 SQL Server 服务。


配置管理器:右键单击该服务并选择重新启动。

服务管理器:同时重启相关服务。

重启有时是一剂灵丹妙药。
虽然听起来很简单,但确实有效。

7 其他小问题
身份验证问题:链接服务器身份验证方法不正确?例如,Kerberos 票证过期且 SPN 丢失。

无法连接到命名管道:检查本地安全策略或系统日志。

用户帐户限制。
用户是否仅限本地登录?
我遇到命名管道连接错误。
经过多方查证,我发现这是当地政策的问题。

如果其他方法均失败,请联系您的数据库管理员或技术支持。
有时候问题真的很复杂,单靠自己是无法解决的。