当前位置: 首页 > 图文教程 > Java技术 > 数据库持久层 > 总结JDBC连接SQLServer的错误Error establishing socket

数据库持久层
数据库持久层:Hibernate中cascade和inverse的用法
数据库持久层:hibernate的配置信息
数据库持久层:谈hibernate的持续性
数据库持久层:小议Hibernate查询及数据检索
数据库持久层:浅谈hibernate中的Session
数据库持久层:小编浅谈hibernate中抓取策略
数据库持久层:iBATIS框架中Serializable可读写缓存及存储类型
数据库持久层:ibatis高级特性
数据库持久层:为持久层编写单元测试
数据库持久层:小编浅谈ibatis基础语义
数据库持久层:Hibernate中与关联有关的问题
数据库持久层:浅谈ORM(对象关系映射)
总结JDBC连接SQLServer的错误Error establishing socket
数据库持久层:iBATIS的OR 映射
数据库持久层:DAO和ODBC的相似之处
数据库持久层:小编浅谈DAO的特色
数据库持久层:小编浅谈XDoclet 与Hibernate 映射
数据库属性hibernate.dialect的设置

数据库持久层 中的 总结JDBC连接SQLServer的错误Error establishing socket


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-08   浏览: 1037 ::
收藏到网摘: n/a

在用MSSQL连接数据库的过程中,经常会遇见“Error establishing socket.”的错误,大概得错误日志信息如下:

Sql代码
  1. java.sql.SQLException : [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.    
  2.     at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)    
  3.     at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)    
  4.     at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)    
  5.     at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)    
  6.     at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)    
  7.     at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)    
  8.     at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)    
  9.     at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)    
  10.     at java.sql.DriverManager.getConnection( DriverManager.java:523 )    
  11.     at java.sql.DriverManager.getConnection( DriverManager.java:171 )    
  12.     at test.SqlServerTest.main( SqlServerTest.java:29 )   
java.sql.SQLException : [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.	at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)	at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)	at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)	at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)	at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)	at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)	at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)	at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)	at java.sql.DriverManager.getConnection( DriverManager.java:523 )	at java.sql.DriverManager.getConnection( DriverManager.java:171 )	at test.SqlServerTest.main( SqlServerTest.java:29 )


我在网上查询到问题解决的方式有大概如下 种:
一 配置错误
jdbc配置语句为: jdbc:microsoft:sqlserver://server_name:1433
其中的sqlserver、server_name和端口号都要看仔细了。
二 1433端口问题
可以通过命令“netstat -an”,来查看是否开了1433端口,如果列表中没有,要增开端口。
要保持jdbc配置语句( jdbc:microsoft:sqlserver://server_name:1433)中的端口与数据库传输协议默认的端口相同。
MSSQL设置端口号步骤如下:
1. 打开企业管理器,依次在控制台根目录 ->Microsoft SQL Servers->SQL Server 组,列出一部分数据库服务器。
2. 右击我们要连接的数据库服务器,选择属性,在常规选项卡点击网络配置弹出新窗口。
3. 在启用的协议区域我们选择 TCP/IP ,点击属性按钮,弹出新窗口。在这个窗口有网络协议默认值设置,一般默认端口是:1433。 如果你在url中用的端口号与这个不同,就会出现错误。应保持二者相同。
三 没打补丁
可以用如下的方式查看MSSQL的版本:
打开企业管理器-〉工具-〉SQL查询分析器-〉帮助-〉关于
查看MSSQL的详细版本号
如果 是 8.00.194 就是还没打补丁
8.00.760 就是SP3
8.00.2039 就是SP4

1、下载MSSQL 2000 Service Pack 3a并安装,SQL请选用混和安装模式!!!
http://www.microsoft.com/downloads/details.aspx?FamilyId=90DCD52C-0488-4E46-AFBF-ACACE5369FA3&displaylang=zh-cn
解压缩sp3的升级包后,还要点击setup安装.才能成功升级到sp3。
2、下载SQL Server 2000 Driver for JDBC Service Pack 3
http://www.microsoft.com/downloads/details.aspx?FamilyId=07287B11-0502-461A-B138-2AA54BFDC03A&displaylang=en
四 系统防火墙或者杀毒软件
如果系统开防火墙或者杀毒软件,在有些情况下也可以出现类似的问题。
没有遇见过,有人这么说。

可能我查询的未必全面,如果你的解决方式不同,可以给我留言,一起完善其解决方法.