簡體   English   中英

無法連接到數據庫網絡錯誤IOException:連接被拒絕:連接

[英]Could not connect to the database Network error IOException: Connection refused: connect

我在我的機器上運行 SQL Server Express 10.50.4000.0。 我已啟用 TCP/IP 並確保端口設置為 1433。我在防火牆中為 1433 添加了一個例外。服務器服務正在運行。 我已經嘗試了 localhost 和計算機名稱,但都給出了相同的錯誤。 當我嘗試 localhost\\SQLEXPRESS 或 [USER-PC]\\SQLEXPRESS 時,我收到一條錯誤消息,說它找不到數據庫。

String driverName = "net.sourceforge.jtds.jdbc.Driver";
Class.forName(driverName);

String serverName = "localhost";
String instanceName = "ALLEN-PC\\SQLEXPRESS";
String serverPort = "1433";
String database  = serverName +":" + serverPort+"/"+instanceName;
String url = "jdbc:jtds:sqlserver://" + database;
String username = "sa";
String password = "password";

connection = DriverManager.getConnection(url, username, password);

我收到錯誤:

Could not connect to the database Network error IOException: Connection refused: connect

沒有額外的背景可以調查。

  1. 確保您的 SQL Server Browser 服務處於活動狀態。
  2. 轉到 AllProgram->SQL Server -> 配置工具->SQL Server 配置管理器->SQL Server 網絡配置-> 選擇您的服務器實例並右鍵單擊 TCP/IP,然后轉到 IPAddresses。 將所有 IP 的端口號更改/放置為 1433。還要確保 IP 地址處於活動狀態並已啟用。 保存並重新啟動服務器。

沒有數據庫服務器監聽 localhost:1433

檢查 SQL Server Browser 服務是否正在運行

所以也許使用 ip 地址而不是 localhost 會有所幫助。

您的連接字符串需要采用這種格式。 在這里找到: http : //msdn.microsoft.com/en-us/library/ms378428(v=sql.110).aspx

jdbc:jtds:sqlserver://<yourDBServerIPAddress>\SQLEXPRESS:1433;databaseName=AdventureWorks;user=sa;password=*****;

打開配置管理器:開始 -> Microsoft SQL Server -> 配置工具 -> SQL Server 配置管理器 啟用 TCP/IP:從左側樹中選擇:SQL Server 網絡配置 -> SQLEXPRESS 協議 -> TCP/IP 右鍵單擊並啟用它。 雙擊 TCP/IP 並單擊“IP 地址”選項卡 添加 TCP/IP 端口:將 TCP 端口值輸入為 1433 然后單擊應用重新啟動 SQL Server:從左側樹中,選擇:SQL Server Services -> SQL Server ( SQLEXPRESS) -> 右鍵單擊​​並重新啟動。

解決方案 1:使用mssql-jdbc-9.4.0.jre8.jar而不是使用 jtds 驅動程序

代替:

Class.forName("net.sourceforge.jtds.jdbc.Driver");
con = DriverManager.getConnection("jdbc:jtds:sqlserver://<IP>:port/<DatabaseName>",userid,password);

和:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
DriverManager.getConnection("jdbc:jtds:sqlserver://<IP>:port/<DatabaseName>",userid,password);

解決方案2:

在連接字符串中添加ssl=request參數

con = DriverManager.getConnection("jdbc:jtds:sqlserver://<IP>:port/<DatabaseName>;ssl=request",userid,password);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM