2012-11-05 25 views
2

我正嘗試使用JDBC驅動程序在一些Java和SQL Server之間創建連接。我創建了一個Connection類應該形成於這是我的計算機IP地址示例「BHX」jdbc:jtds連接到SQL服務器

這裏對服務器的連接Connection類

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:連接失敗」

+0

確定防火牆沒有阻止1433?你檢查過了嗎? – Ami

+0

你能夠遠程登錄到該主機/端口嗎? jTDS與SQL Server完美協作,所以它應該是最後一個責備。 – bobah

+0

數據庫是否被綁定到'localhost'而不是'0.0.0.0'或類A/B/C私有IP? –

回答

-1

它會在您添加的用戶名和密碼,您的連接工作字符串如:

"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"