Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jdbc:jtds与sqlserver的连接_Java_Sql Server_Jdbc - Fatal编程技术网

Java jdbc:jtds与sqlserver的连接

Java jdbc:jtds与sqlserver的连接,java,sql-server,jdbc,Java,Sql Server,Jdbc,我正在尝试使用JDBC驱动程序在一些Java和SQL服务器之间创建连接。我已经创建了一个连接类,该类应构成到我的计算机上的服务器的连接,该服务器的示例IP地址为“BHX” 这是连接类 public class Connection { public static void main(String[] args) throws Exception { try { String databaseDriver = "net.sourceforge.jtds.jdbc.Dri

我正在尝试使用JDBC驱动程序在一些Java和SQL服务器之间创建连接。我已经创建了一个连接类,该类应构成到我的计算机上的服务器的连接,该服务器的示例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
我看到过类似的问题,但看起来我已经遵循了所有可能的解决方案。我已经检查了配置管理器中是否启用了TCP/IP,以及端口号是否为1433

我尝试过在禁用防火墙的情况下运行此程序,但仍然会出现相同的错误


telnet BHX 1433和我收到以下消息“…无法在端口1433上打开与主机的连接:连接失败”

当您将用户名和密码添加到连接字符串时,它将起作用,如:

"jdbc:jtds:sqlserver://BHX:1433/Forecast;instance=SQLEXPRESS;user=XXXXX;password=XXXXX"
这应该适用于SQL Server身份验证

如果仅使用windows身份验证,则还需要提供以下域:

"jdbc:jtds:sqlserver://BHX:1433/Forecast;instance=SQLEXPRESS;domain=XXXXX;user=XXXXX;password=XXXXX"

当您将用户名和密码添加到连接字符串时,它将起作用,如:

"jdbc:jtds:sqlserver://BHX:1433/Forecast;instance=SQLEXPRESS;user=XXXXX;password=XXXXX"
这应该适用于SQL Server身份验证

如果仅使用windows身份验证,则还需要提供以下域:

"jdbc:jtds:sqlserver://BHX:1433/Forecast;instance=SQLEXPRESS;domain=XXXXX;user=XXXXX;password=XXXXX"

您确定防火墙没有阻止1433吗?你检查过了吗?你能远程登录到那个主机/端口吗?jTDS与SQL Server配合得很好,因此应该是最后一个原因。DB是否有可能绑定到本地主机,而不是0.0.0.0或a类/B/C专用IP?我已尝试使用telnet BHX 1433,并收到以下消息“…无法打开到主机的连接,在端口1433上:连接失败'我不确定Thanga发布的第一条链路是否能解决telnet的连接问题。您确定防火墙没有阻止1433吗?你检查过了吗?你能远程登录到那个主机/端口吗?jTDS与SQL Server配合得很好,因此应该是最后一个原因。DB是否有可能绑定到本地主机,而不是0.0.0.0或a类/B/C专用IP?我已尝试使用telnet BHX 1433,并收到以下消息“…无法打开到主机的连接,在端口1433上:连接失败'我不确定Thanga发布的第一条链路是否能解决telnet的连接问题。