【发布时间】:2012-11-05 11:54:29
【问题描述】:
我正在尝试使用 JDBC 驱动程序在某些 Java 和 SQL Server 之间创建连接。我创建了一个 Connection 类,它应该与我的计算机上的服务器建立连接,例如 IP 地址为“BHX”
这里是连接类
public class Connection {
public static void main(String[] args) throws Exception {
try {
String databaseDriver = "net.sourceforge.jtds.jdbc.Driver";
Class.forName(databaseDriver);
} catch (Exception e) {
e.printStackTrace();
}
try {
String url = "jdbc:jtds:sqlserver://BHX:1433/Forecast;instance=SQLEXPRESS";
java.sql.Connection con = DriverManager.getConnection(url);
System.out.println("Connection created");
con.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
我想知道 url 字符串是否有任何问题,因为当我运行此代码时,我收到以下错误:
java.sql.SQLException: Network error IOException: Connection refused: connect
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:417)
at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:185)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Connection.main(Connection.java:56)
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:311)
at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:261)
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:318)
... 5 more
我看到过类似的问题(like this here),但看起来我已经遵循了所有可能的解决方案。我已经检查了配置管理器中启用了 TCP/IP,并且端口号是 1433。
我已尝试在禁用防火墙的情况下运行此程序,但仍然出现相同的错误。
telnet BHX 1433 并且我收到以下消息“...无法在端口 1433 上打开与主机的连接:连接失败”
【问题讨论】:
-
您确定防火墙没有阻止 1433 吗?你检查了吗?
-
你能telnet到那个主机/端口吗? jTDS 确实与 SQL Server 完美配合,所以它应该是最后一个责任。
-
数据库是否有可能绑定到
localhost而不是0.0.0.0或 A/B/C 类私有 IP? -
我尝试使用 telnet BHX 1433 并收到以下消息'...无法在端口 1433 上打开与主机的连接:连接失败'
-
我不确定 Thanga 发布的第一个链接是否会解决 telnet 的连接问题。
标签: java sql-server jdbc