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


82

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

エラー:ホスト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));
}

ローカルコンピュータは、ポート1433への接続を許可していません。これはファイアウォールの問題である可能性があります。また、ポートで実際にリッスンしているものがあることを確認してください
MadProgrammer 2013

回答:


203
  1. SQL Server構成マネージャーを開き、SQL Server2012ネットワーク構成を展開します。
  2. [InstanceNameのプロトコル]をクリックし、右側のパネルでTCP / IPが有効になっていることを確認して、[TCP / IP]をダブルクリックします。
  3. [プロトコル]タブで、[すべて聞く]アイテムの値に注目してください。
  4. [IPアドレス]タブをクリックします。[すべてリッスン]の値が[はい]の場合、SQL Server2012のこのインスタンスのTCP / IPポート番号は、[IPAll]の下の[TCP動的ポート]項目の値です。[すべてリッスン]の値が[いいえ]の場合、SQL Server2012のこのインスタンスのTCP / IPポート番号は、特定のIPアドレスの[TCP動的ポート]項目の値です。
  5. TCPポートが1433であることを確認してください。
  6. [OK]をクリックします。

他にご不明な点がございましたら、お気軽にお問い合わせください。

ありがとう。


13
また、変更を加えた後は、SQLインスタンスを再起動することを忘れないでください。
JimGoods 2015年

16
次のようにSQLインスタンスを再起動します。[SQLServer構成マネージャー]-> [SQL Server 2012サービス]で、[SQL Server]を右クリックし、[再起動]を選択します。
開発者MariusŽilėnas2015年

10
IPAIIではTCPポートが1433であることを確認してください。
開発者MariusŽilėnas2016

または、アプリケーションのポート番号をIPAIIのTCP動的ポートの値に変更します。値を変更できないので、これを機能させるために私がしたことです。
AlieneilA 2018年

111

簡単な解決策

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

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

ここに画像の説明を入力してください


2
これらの手順を実行した後、サーバーを停止して再起動する必要がありました。ありがとう!
bluefox 2016

15

エラーは自明です:

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

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

telnet 127.0.0.1 1433

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


1
telnet 127.0.01 1433を試しましたが、127.0.01への接続でホストへの接続を開くことができなかったか、ポート1433接続に失敗しました
Aysha Nijhawan 2013

1
したがって、サーバーがインストールされていないか、サーバーが実行されていないか、ファイアウォールが接続を妨げている可能性があります。これは通常、Javaプログラムの問題ではありません
gerrytan 2013

11

[スタート]-> [すべてのプログラム]-> [Microsoft SQL Server 2012]-> [構成ツール]-> [SQLServer構成マネージャー]をクリックします。 ここに画像の説明を入力してください

SQL Server / SQLServerブラウザの状態が「停止」している場合はSQLServer / SQLServerブラウザを右クリックして[開始]をクリックします。 ポート1433へのTCP接続が割り当てられていても、上記の状態が停止する場合があります。


とても助かりました。クライアント接続を行うために実行する必要がある重要なコンポーネントであるブラウザが無効になりました。
マユール

3

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

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

  1. netstat -aSQLサーバーが目的のポートでリッスンしているかどうかを確認するために使用します
  2. gerrytanが回答で述べたようtelnetに、ホストとポートで実行を試みることができます

OPはmysqlではなくSQLサーバーを使用していると思います
SpringLearner 2013

@AyshaNijhawanリッスンしているポートを確認しましたか?また、同じIP /ポートと資格情報を使用して、コマンドプロンプトまたはSQLクライアントからSQLサーバーに接続してみてください。
Juned Ahsan 2013

ポートは1433で、接続文字列に入れて使ってみました。名前付きパイプ、メモリ、およびTCP / IPは、SQLサーバーで有効になっていますN / W config-> MSSQLSERVERのプロトコル
Aysha Nijhawan 2013

0

重要:
変更または新しい設定を行った後は、SQLSERVERサービスを再起動する必要があります。実行services.msc上のWindows


0

名前付きインスタンスを使用している場合、使用しているポートは1433ではなく1434である可能性が高いため、前述のtelnetまたはnetstatを使用して確認してください。


0

%windir%\ System32フォルダーを開き、SQLServerManagerXX.mscを見つけます

例えば:

C:\ Windows \ System32 \ SQLServerManager14.msc

プロトコル設定に移動し、TCP / IPポートを有効にします。デフォルトでは1433です。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.