2015-06-15 151 views
1

我使用MYSQL來滿足我的數據庫需求。我轉而使用MSSQL,因爲有人想讓我開發一個應用程序。我使用的MS SQL Server 2008的前面,然後升級到MS SQL Server 2012的在JDBC中,我使用了以下內容:MS SQL與MS SQL Server 2012的JDBC連接

String connectionUrl="jdbc:sqlserver://"+sname+";DatabaseName="+dbname; 

其中SNAME是我的「計算機名/實例名」(這是正確的),數據庫名是自我解釋。我也嘗試過使用端口號的其他各種字符串。嘗試所有這些:

1)右鍵單擊Sql Server中的Sql管理工作室(SMS) - >連接 - >允許遠程連接。

2)右鍵在SQL Management Studio中(SMS),在SQL Server上點擊 - >安全 - >允許遠程連接 - >設置身份驗證模式,以贏得和SQL身份驗證模式(即混合模式)

3)即使禁用防火牆。

4)SQL Server配置管理器 - >網絡配置 - >協議 - >啓用共享內存,命名管道,TCP/IP。

5)SQL Browser服務已啓用。

6)Here它說'服務器正在監聽['any'1433]'應該列在我的SQL Server日誌中,而不是。即使在港口重複啓用1433之後也是如此。

7)我也有:

看了很多像these鏈接這並沒有幫助。 嘗試this中的所有答案。有人在回答中提到了telnet命令。運行

telnet 127.0.0.1 1433 

我得到'無法打開連接到主機,端口1433:連接失敗'。我嘗試通過控制面板中的防火牆高級設置打開端口。我已經嘗試過'advfirewall netsh'來啓用端口。

我使用這個來基本上在NetBeans上開發一個Web應用程序。一個簡單的數據庫連接問題需要整天。就好像微軟讓我們很難使用MS SQL Server一樣。

我得到的錯誤是:

se:com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host [host name], port 1433 has failed. Error: "Connection refused: connect. 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." 

任何人可以幫助指出我丟失的東西?這裏是我的配置管理器窗口的視圖從2012文件夾中打開(我已經從2008年,我的程序文件夾2012,IDK的爲什麼,因爲更新用後不應2008年版本已被刪除?):

回答

0

終於爲我工作(在各種博客上搜索幾小時後):

  1. 安裝MS SQL 2012與默認實例。這刪除了2008版。
  2. Redid以上所有。另外,爲端口1433添加了出站規則。經過多次搜索後找到了關於出站規則的部分。每個人都只說入站規則。
  3. 重新啓動配置管理器中的服務(SQL瀏覽器,SQL Server)。在開始之前不會發生變化。
  4. 使用此連接字符串(與用戶=「SA」和服務器名稱作爲默認實例名稱也用於SA密碼):

    url = "jdbc:sqlserver://" + servername + ":1433;user=" + user + ";password=" + dbPass + "; namedPipe=true;DatabaseName=" + dbName; 
    

注:我重新開始,每次重新服務器我從開始 - >所有程序 - > Microsoft SQL Server 2012 - >配置工具 - > SQL Server配置管理器 - > SQL服務 - >用我的默認實例名稱右鍵單擊SQL Server並啓動它。然後,運行telnet命令:

telnet 127.0.0.1 1433 

顯示一個空白屏幕。這意味着端口1433現在正在工作。

+0

MS JDBC驅動程序對命名實例正常工作,因此切換到默認實例並不能解決您的問題。 – alroc

+0

不知道爲什麼,但經過反覆嘗試上述步驟後,這工作。 – user2816215