Windows Server 2008 R2连接Windows Server 2022上SQL Server 2019的ODBC失败求助
解决Windows Server 2008 R2 ODBC连接SQL Server 2019失败的问题
以下是针对你遇到的TCP连接被远程强制关闭问题的排查和解决步骤:
1. 修复TLS版本兼容性问题
Windows Server 2008 R2默认仅启用TLS 1.0/1.1,而SQL Server 2019在Windows Server 2022环境下通常会禁用这些老旧TLS版本,强制要求TLS 1.2及以上:
- 打开注册表编辑器(运行
regedit) - 定位到路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2 - 分别创建
Client和Server子项,在每个子项中添加两个DWORD值:Enabled:设置为1DisabledByDefault:设置为0
- 重启Windows Server 2008 R2后重新测试连接
2. 检查SQL Server网络配置
- 启用TCP/IP协议:
打开SQL Server配置管理器,展开「SQL Server网络配置」→ 选择目标实例的「协议」,确保TCP/IP状态为「已启用」。双击TCP/IP,切换到「IP地址」标签,确认目标IP的「TCP端口」为1433(或自定义端口),且「Active」「Enabled」均为「是」。 - 防火墙规则验证:
在Windows Server 2022上,检查防火墙是否允许SQL Server端口(1433或自定义端口)的入站连接。可临时关闭防火墙测试,排除拦截可能。
3. 确保驱动兼容性
- 卸载旧版SQL Server Native Client 11.0,安装ODBC Driver 17 for SQL Server(Windows Server 2008 R2需先安装.NET Framework 4.5及以上版本以支持该驱动)。
- 重新配置ODBC数据源,选择新安装的驱动进行连接测试。
4. 验证SQL Server登录权限
- 确认ODBC配置中使用的账号(Windows账号或SQL账号)在SQL Server 2019实例上已创建登录名,且具备目标数据库的连接权限。
- 若使用SQL账号,需确保SQL Server实例已启用「混合模式身份验证」。
5. 排查网络连通性
- 在Windows Server 2008 R2上执行
ping <SQL服务器IP>,确认网络可达。 - 执行
telnet <SQL服务器IP> 1433(替换为实际端口),测试端口是否开放。若telnet失败,说明网络链路存在端口阻断。
内容的提问来源于stack exchange,提问作者prasanna venkatesh
相关产品推荐
相关产品推荐

