2012-05-09 143 views
5

我有一個本地的MS SQL Server和我嘗試連接使用JTDS在Java它。這裏是連接字符串:連接到本地的MS SQL Server

Class.forName("net.sourceforge.jtds.jdbc.Driver"); 
Connection conn = DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1433/stock","sa","password"); 

而且服務器屬性:
名稱:USER-PC \ SQLEXPRESS
根目錄:C:\ Program Files文件\ Microsoft SQL Server的\ MSSQL11.SQLEXPRESS \ MSSQL

我收到一個Exception in thread "main" java.sql.SQLException: Network error IOException: Connection refused: connect錯誤。

我該如何補救?

+0

你看過這裏嗎? http://www.connectionstrings.com/ –

+0

Connectionstrings ...服務不可用。 http錯誤503服務不可用。 –

+0

「連接被拒絕」通常意味着在該端口上沒有任何監聽或防火牆正在主動阻止您的連接。既然你連接到本地主機,我會猜測前者。嘗試使用「本地」SQL Server工具(即管理工作室或sqlcmd)進行連接,將其歸結爲您可以嘗試的最簡單的事情。 –

回答

10

檢查以下內容:

  • 已啓用混合模式的安全性,即這樣你就可以使用用戶名/密碼進行連接(而不是使用Windows身份驗證)
  • 的TCP/IP協議已啓用。打開SQL Server配置管理器,然後在SQL Server網絡配置中選擇協議並啓用TCP/IP。
  • 嘗試使用這種格式傳遞只是一個字符串的getConnection:

    DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1433/stock;instance=SQLEXPRESS;user=sa;password=password") 
    
  • 如果你使用這種格式(命名實例),則SQL Server Browser服務需要運行(在服務)。如果這是灰色的,那麼服務可能被禁用,所以啓用它,然後啓動它。

+0

與更改錯誤,現在是在線程「主要」值java.sql.SQLException'異常:無法從SQL Server的信息:localhost.' – Mike

+0

你有一個防火牆? –

+0

您確定啓用了TCP/IP嗎?請參閱http://jtds.sourceforge.net/faq.html#instanceGetInfo –

0

端口1433是默認實例使用的端口。您正在使用SQLEXPRESS,它是一個命名實例。您的連接字符串應該包含以下內容:

sqlserver://localhost\SQLEXPRESS 
0

默認情況下,SQL Server Browser服務處於禁用狀態。如果您正在開發.Net應用程序,則不需要啓動SQLBrowser,但如果您在Java中使用JTDS,則需要啓動它。