日期:2014-05-16  浏览次数:20775 次

JDBC连接SqlServer2000出现"Connection refused: connect"的处理
错误信息如下所示:

java.sql.SQLException: Network error IOException: Connection refused: connect
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:385)
at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:182)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at test.Test.main(Test.java:33)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:304)
at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:255)
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:310)
... 5 more


处理如下:
一.查看端口信息
使用JDBC在默认端口1433上连接SQL Server获得connection refused异常,大致异常信息为:
The TCP/IP connection to the host  has failed. java.net.ConnectException: Connection refused。
1.使用telnet 127.0.0.1 1433测试,得到如下信息:
  正在连接到127.0.0.1...不能打开到主机的连接, 在端口 1433: 连接失败表示1433端口没有
  打开
2.检查SQL Server服务已经启动。于是用网络工具扫描端口,发现和SQL Server服务相关的端口
   为1109和1434。不过1434为UDP端口,所以当前的连接端口应为1109。可以使用SQL Server的
“服务器实用网络工具”修改默认端口。打开“服务器使用网络工具”后,在“常规”选项
  卡中的“启用的协议”列表中,选择“TCP/IP”,然后点击“属性”按钮,就可以看到默认
  的端口值。修改后,重启SQL Server服务,即可使用修改后的端口连接服务器。

二.安装更新补丁

注:信息来自互联网