数据库从企业版降级为标准版后SQL Server无响应连接关闭如何解决
针对SQL Server降级后JDBC SSL连接失败的解决方案
- 第一步:核查SQL Server标准版的TLS/加密配置
降级操作会重置SQL Server实例的网络配置,你需要打开SQL Server配置管理器,进入对应实例的「SQL Server网络配置」,右键打开实例协议属性:- 检查「证书」标签页是否绑定了有效的SSL证书,若之前企业版配置了自定义证书,降级后大概率会丢失
- 检查「标志」标签页的强制加密配置,确认和降级前的企业版配置一致,若不需要强制加密可暂时关闭测试连接是否恢复
- 第二步:调整JDBC连接参数
在原有连接串中新增以下配置,优先指定高版本TLS协议,跳过不可信证书校验(仅测试用,生产环境建议替换为可信证书):
示例连接串:
同时确认你使用的JDBC 4.2对应驱动版本为jdbc:sqlserver://<数据库地址>:<端口>;databaseName=<数据库名>;encrypt=true;trustServerCertificate=true;sslProtocol=TLSv1.2mssql-jdbc 6.0+,过低的驱动版本会存在TLS 1.2兼容性问题。 - 第三步:定位TLS握手具体报错
给应用添加JVM启动参数开启SSL握手日志,精准定位失败节点:
启动应用触发连接报错后,查看日志中Client Hello发送后的响应情况,即可判断是服务端主动断开、算法不匹配还是证书校验问题。-Djavax.net.debug=ssl:handshake - 第四步:核查TCP端口连通性
SSMS默认支持共享内存、命名管道等连接方式,和JDBC使用的TCP协议逻辑不同,你需要执行命令验证TCP端口连通性:
若连通失败则需要检查SQL Server的TCP/IP协议是否开启、端口监听配置是否正确、服务器防火墙是否放通对应端口。telnet <数据库地址> 1433
内容的提问来源于stack exchange,提问作者Aindriya Barua
相关产品推荐
相关产品推荐

