web-dev-qa-db-ja.com

JDBC接続に失敗しました、エラー:ホストへのTCP / IP接続に失敗しました

JavaクラスファイルをSQLサーバー2012に接続します。SQLサーバー認証でログインしました。しかし、接続でエラーが発生します。

エラー:ホスト127.0.0.1、ポート1433へのTCP/IP接続に失敗しました。エラー:「接続拒否:接続。接続プロパティを確認してください。SQLServerのインスタンスがホストで実行されていることを確認してください。ポートでTCP/IP接続を受け入れます。ポートへのTCP接続がファイアウォールによってブロックされていないことを確認してください。 "

私のコード---

Class.forName("com.Microsoft.sqlserver.jdbc.SQLServerDriver");  //1. Register your driver
//2. get the connection object
//Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost;databaseName=aysha","sa","admin");
Connection con = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1;databaseName=aysha","user=sa","password=admin");
 //"jdbc:sqlserver://127.0.0.1:1433; Instance=SQL2008;" +       "databaseName=MB;user=sa;password=123;";
//Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=aysha","sa" , "password");
//3. Prepare a statement
Statement stmt = con.createStatement();
//4. Write the query`
String sql = "Select * from employee";
//5. Execute the statement and 
ResultSet rs = stmt.executeQuery(sql);
//6. Process the result set

while (rs.next())
{
    System.out.println(rs.getInt(1));
}
74
Aysha Nijhawan
  1. SQL Server構成マネージャーを開き、[SQL Server 2012ネットワーク構成]を展開します。
  2. [InstanceNameのプロトコル]をクリックし、右側のパネルでTCP/IPが有効になっていることを確認して、[TCP/IP]をダブルクリックします。
  3. [プロトコル]タブで、[Listen All]アイテムの値を確認します。
  4. [IPアドレス]タブをクリックします。ListenAllの値がyesの場合、SQL Server 2012のこのインスタンスのTCP/IPポート番号は、IPAllの下のTCP Dynamic Portsアイテムの値です。 Listen Allの値がnoの場合、SQL Server 2012のこのインスタンスのTCP/IPポート番号は、特定のIPアドレスのTCP Dynamic Portsアイテムの値です。
  5. TCP Portが1433であることを確認してください。
  6. OKをクリックします。

他に質問がある場合は、お知らせください。

ありがとう。

172
prince

簡単な解決策

[スタート]、[すべてのプログラム]、[Microsoft SQL Server 2012]、[構成ツール]、[SQL Server構成マネージャー]、[SQL Serverネットワーク構成の展開]、[プロトコル]、[TCP/IPを有効にする]の順にクリックします

[TCP/IP]をダブルクリックし、[IPアドレス]に移動し、TCPポートの下にポート1433を配置します。

enter image description here

96

エラーは自明です:

  • SQLサーバーが実際に稼働しているかどうかを確認します
  • SQLサーバーのホスト名、ユーザー名、パスワードが正しいことを確認してください
  • ポート1433へのTCP接続をブロックするファイアウォールルールがないことを確認します
  • ホストが実際に到達可能であることを確認します

私がよく使うチェックは、telnetを使用することです。たとえば、windowsコマンドのプロンプトで実行します:

telnet 127.0.0.1 1433

空白の画面が表示される場合は、ネットワーク接続が正常に確立されたことを示しており、ネットワークの問題ではありません。 「ホストへの接続を開けませんでした」というメッセージが表示された場合、これはネットワークの問題です

12
gerrytan

[スタート]、[すべてのプログラム]、[Microsoft SQL Server 2012]、[構成ツール]、[SQL Server構成マネージャー]の順にクリックします。 enter image description here

SQL Server/SQL Server Browserの状態が「停止」している場合は、SQL Server/SQL Server Browserを右クリックして、開始をクリックします。 ポート1433へのTCP接続が割り当てられているにもかかわらず、上記の状態が停止する場合があります。

7
Abdur Rahman

エラーが示すように、SQLサーバーが実行され、ポート1433でリッスンしていることを確認する必要があります。サーバーが実行されている場合、ポート1433で接続を拒否するファイアウォールルールがあるかどうかを確認する必要があります。

トラブルシューティングに役立つコマンドは次のとおりです。

  1. netstat -aを使用して、SQLサーバーが目的のポートでリッスンしているかどうかを確認します
  2. Gerrytanが答えで言及したように、ホストとポートでtelnetを試すことができます
2
Juned Ahsan