如何从Oracle SQL Developer连接独立的SQL Server数据库
Oracle SQL Developer连接SQL Server报错
I/O Error: Unknown packet type 0x48解决方案 报错原因
该报错为jTDS驱动与目标SQL Server的加密协商逻辑不匹配导致,SSMS自带的驱动默认兼容SQL Server的加密策略,所以可以正常连接,jTDS驱动默认的加密请求逻辑和服务端规则不兼容,就会返回未知数据包类型错误。
解决步骤
- 调整JDBC连接自定义参数
打开SQL Developer的SQL Server连接编辑页面,找到自定义JDBC参数输入框,填入以下参数后重新测试连接:
如果关闭SSL后报错依旧,将ssl=off;useCursors=true;ssl=off替换为ssl=request,强制驱动按照服务端要求的加密规则协商后再次测试。 - 核对连接端口配置
检查连接配置中填写的端口是否正确:若使用SQL Server命名实例,优先确认目标服务器的SQL Server Browser服务已启用,或者直接填写该实例对应的静态端口,不要依赖动态端口探测。默认实例未修改端口的情况下默认端口为1433,可先通过telnet测试目标IP+端口的连通性,排除网络策略拦截问题。
- 替换为微软官方SQL Server JDBC驱动
jTDS驱动已经停止维护多年,对高版本SQL Server的兼容性较差,可更换为微软官方驱动解决兼容性问题:- 下载适配SQL Developer运行JDK版本的微软SQL Server JDBC驱动jar包
- 将jar包添加到SQL Developer的第三方JDBC驱动配置中
- 新建连接时选择微软官方SQL Server驱动类型,重新填写连接信息测试即可
报错截图

内容的提问来源于stack exchange,提问作者Leonardo
相关产品推荐
相关产品推荐

