2016-11-01 22 views
0

我正嘗試使用jdbc驅動程序連接MS SQL服務器。我越來越低於錯誤;如何使用jdbc設置實例名稱

Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall 

我認爲我的連接URL存在問題。這是我的連接網址;

jdbc:sqlserver://50.50.50.50\MYINSTANCE:1433; 

編輯:我可以連接這個SQL服務器與一些客戶端應用程序(HeidiSQL)沒有任何問題。

Network type: Microsoft SQL server (tcp/ip) 
Hostname:50.50.50.50\MYINSTANCE 
Port: 1433 
username:... 
password:... 

以下行拋出異常,我可以連接一些其他的SQL服務器沒有任何問題。(他們沒有任何實例名)

DriverManager.getConnection(connectionUrl, username, password); 
+1

一般形式爲:'爲jdbc:SQLSERVER:// [服務器[\實例] [:端口號] [;屬性=值[;屬性=值]]'。看起來很完美。 –

+0

您是否已經完成了該消息告訴您要做的所有檢查? –

+0

對於HeidiSQL而言,您沒有提供端口嗎?請檢查以確保您的SQL Server正在接受1433上的連接。 –

回答

0

檢查,如果沒有規則,阻止TCP連接 在cmd上執行

telnet 127.0.0.1 1433 

並且還檢查您的SQL服務器配置TCP端口是否正確。

+0

當我「telnet 50.50.50.50 1433」我得到「無法打開連接到主機,端口1433」。 – hellzone

+0

嘗試設置TCP端口爲SQL server.Got開始 - >所有程序 - > Microsoft SQL Server - >配置工具 - > SQL Server配置管理器 - >協議 - >啓用TCP/IP權利框 雙擊TCP/IP並轉到IP地址點擊並將端口號置於TCP端口下。 – Zia

1

SQL Server實例MYINSTANCE可能未偵聽端口1433.通常,連接URL將包含實例名稱端口號,而不是兩者。當兩者都提供時,必須優先考慮。

如果爲HeidiSQL同時指定Port: 1433允許您連接,那麼看起來HeidiSQL優先於實例名稱。 SQL Server JDBC驅動程序會做相反的事情:當提供實例名稱和端口號時,它將優先考慮端口號。

所以,你應該能夠使用這樣的URL連接:

jdbc:sqlserver://50.50.50.50;instanceName=MYINSTANCE