タイムアウト発生時のトラブルシューティング
"タイムアウトが発生しました" エラーは、一般に SQL Server データベース エンジンのインスタンスが実行されていないとき、サーバー名が正しく入力されていないとき、またはネットワークの問題やファイアウォールによって発生します。
エラー テキスト
SQL Server Management Studio では、このエラーは次のように表示されます。
"<servername> に接続できません。"
"タイムアウトが発生しました。操作が完了する前にタイムアウトの時間が経過したか、サーバーが応答していません (Microsoft SQL Server, エラー: -2)"。
sqlcmd からは次のようなタイムアウト エラーが発生する可能性があります。
"SQL ネットワーク インターフェイス: サーバー/指定したインスタンスの検索エラー"
"Sqlcmd: エラー: Microsoft SQL Server Native Client : 接続を確立できません。"
"Sqlcmd: エラー: Microsoft SQL Server Native Client : ログインでタイムアウトが発生しました"
"SQL Server への接続を開けませんでした"
"サーバーへの接続を確立中にエラーが発生しました。SQL Server に接続している場合、既定の設定では SQL Server によるリモート接続が許可されていないために、このエラーが発生した可能性があります"
このエラーの一般的な原因
原因 |
解決方法 |
---|---|
サーバー名が正しく入力されませんでした。 |
正しいサーバー名を入力して、再試行します。 |
サーバーで SQL Server サービスが実行されていません。 |
SQL Server データベース エンジンのインスタンスを開始します。 |
ファイアウォールによりデータベース エンジン インスタンスの TCP/IP ポートがブロックされています。 |
データベース エンジンへのアクセスを許可するようにファイアウォールを構成します。 |
データベース エンジンが変更されたか、またはこのインスタンスが既定のインスタンスではないため、データベース エンジンではポート 1433 をリッスンしておらず、SQL Server Browser サービスが実行されていません。 |
SQL Server Browser サービスを開始するか、または TCP/IP ポート番号を指定して接続します。 |
SQL Server Browser サービスは実行されていますが、ファイアウォールにより、UDP ポート 1434 がブロックされています。 |
サーバーの UPD ポート 1434 へのアクセスを許可するようにファイアウォールを構成するか、または TCP/IP ポート番号を指定して接続します。 |
クライアントとサーバーが、同じネットワーク プロトコルを使用するように構成されていません。 |
SQL Server 構成マネージャを使用して、サーバー コンピュータとクライアント コンピュータの両方で、少なくとも 1 つは同じプロトコルが有効になっていることを確認します。 |
ネットワークでサーバー名を IP アドレスに解決できません。この問題は、PING プログラムを使用して確認できます。 |
ネットワーク上のコンピュータの名前解決の問題を修正するか、またはサーバーの IP アドレスを使用して接続します。これは、SQL Server の問題ではありません。詳細については、Windows のマニュアルを参照するか、またはネットワーク管理者に問い合わせてください。 |
ネットワークに IP アドレスを使用して接続できません。この問題は、PING プログラムを使用して確認できます。 |
ネットワーク上の TCP/IP の問題を解決します。これは、SQL Server の問題ではありません。詳細については、Windows のマニュアルを参照するか、またはネットワーク管理者に問い合わせてください。 |
例外的なエラー
複数のサーバー IP アドレス
クラスタまたは複数の IP アドレスを持つ非クラスタ化コンピュータにインストールされている SQL Server の名前付きインスタンスに接続すると、Windows Vista または Windows Server 2008 上のクライアントでこのエラーが発生する可能性があります。この問題は、SQL Server のすべてのバージョンで発生する可能性があります。
原因
リモート コンピュータ上の名前付きインスタンスに接続する場合、クライアントは、ユーザー データグラム プロトコル (UDP) を使用して SQL Server コンピュータまたはクラスタ上の SQL Server Browser サービスに接続し、接続エンドポイント (TCP ポート番号または名前付きパイプ) を取得します。
Windows Vista または Windows Server 2008 クライアントのファイアウォールでは、UDP の厳密でないソース マッピングは許可されません。つまり、応答はクエリが実行された同じ IP アドレスから返される必要があります。最初に対象となった IP アドレスから応答が返されない場合は、クライアントのファイアウォールによってパケットが破棄されます。この問題は、クラスタ化されたサーバーまたは複数の IP アドレスを持つ非クラスタ化サーバー コンピュータへの接続を試みると発生する可能性があります。
次の表では、UDP パケットが破棄される可能性があるオペレーティング システムの組み合わせについて説明します。UDP パケットが破棄されると、TCP ポート 1433 でリッスンしていない SQL Server の名前付きインスタンスや SQL Server の既定のインスタンスに接続できません。
クライアントのオペレーティング システム |
SQL Server を実行しているオペレーティング システム |
SQL Server 2008 結果 |
SQL Server 2005 結果 |
---|---|---|---|
Windows XP または Windows Server 2003 |
Windows XP または Windows Server 2003 |
UDP パケットは破棄されません。 |
UDP パケットは破棄されません。 |
Windows XP または Windows Server 2003 |
Windows Vista または Windows Server 2003 |
UDP パケットは破棄されません。 |
UDP パケットは破棄されません。 |
Windows Vista または Windows Server 2008 |
Windows XP または Windows Server 2003 |
UDP パケットが破棄されます。接続に失敗します |
UDP パケットが破棄されます。接続に失敗します |
Windows Vista または Windows Server 2008 |
Windows Vista または Windows Server 2008 (x86、IA64) |
UDP パケットは破棄されません。 |
UDP パケットが破棄されます。接続に失敗します |
Windows Vista または Windows Server 2008 |
Windows Vista または Windows Server 2008 (x64) |
UDP パケットが破棄されます。接続に失敗します |
UDP パケットが破棄されます。接続に失敗します |
解決方法
この問題を回避するには、次のいずれかの操作を実行します。
接続文字列のサーバー名の一部として、TCP ポート番号または名前付きパイプ名を指定します。
クライアント コンピュータ上の [セキュリティが強化された Windows ファイアウォール] で、例外を作成します。
注意 ファイアウォールの例外を作成すると、悪意のあるユーザーまたはウイルスなどの悪意のあるソフトウェアの攻撃に対するコンピュータまたはネットワークの脆弱性を高めることになる可能性があります。この回避策はお勧めしませんが、代替策の実行が難しい場合に自己の判断でこの回避策を実装できるようにこの情報を示しています。
例外は次のいずれかになります。
SQL Server に接続するアプリケーション用の例外ルールを追加します。
SQL Server コンピュータまたはクラスタの考えられるすべての IP アドレスからのトラフィックを許可する受信ルールを追加します。
トルコ語またはアゼルバイジャン語
ロケールがトルコ語またはアゼルバイジャン語に設定されていて、サーバー名に I が含まれている場合、サーバーに接続できないことがあります。この問題を回避するには、IP アドレスを使用してサーバーに接続します。インスタンス名に I が含まれている場合、サーバーへの接続時には TCP/IP ポート番号を指定します。特定のポートに接続する場合は、別名を使用します。
注 |
---|
接続に関する問題のトラブルシューティングについては、チュートリアル「チュートリアル: データベース エンジンの概要」を参照してください。 |