ネットワークで使用可能なすべてのSQLServerサーバーを表示するには、SQL2008接続の問題と解決策/コマンド "sqlcmd -L"(Lは大文字にする必要があることに注意してください)

多くの初心者は、SQLServerの使用時にSQLServer Management Studioを使用してリモートデータベースインスタンスに接続できないという問題に遭遇します。一般的なエラーの説明は次のとおりです
  。サーバーへの接続の確立中にエラーが発生しました
  (プロバイダー: Named Pipes Provider、エラー:40 – SQL Serverへの接続を開くことができませんでした)(Microsoft SQL Server、エラー:5)
  サーバーへの接続の確立中にエラーが発生しました。SQLServer2005に接続すると、このエラーが発生する可能性があります。デフォルト設定では、SQL Serverはリモート接続を許可しません。(プロバイダー:Named Pipes Provider、エラー:40 – SQL Serverへの接続を開くことができませんでした)(Microsoft SQL Server、エラー:1326)
  は、リモート接続を許可できないことを意味します。データベース間で確立されました接続は、指定されたパイププロバイダーのエラーが原因で発生しました。実際、これは典型的なデータベースサーバーのセットアップの問題であり、ローカルエリアネットワークまたはワイドエリアネットワークで発生する可能性があります。この問題を解決するためにデータベースサーバーを構成するだけで済みます。具体的な手順を見てみましょう。
  サーバー側のデータベースサービスが開始されていることを確認します
  [スタート]-> [すべてのプログラム]-> [Microsoft SQL Server 2008]-> [構成ツール]、[SQL Server構成マネージャー]を開き、[SQL Serverサービス]をクリックして、データベースサービスが開始されているかどうかを確認します。サービスが開始されていない場合は、手動で開始します。もちろん、Windowsで[スタート]-> [コントロールパネル]-> [管理者ツール]-> [サービス]をクリックして、対応するデータベースサービスが開始されているかどうかを確認することもできます。または、サーバーとマシンが同じネットワーク上にある場合は、コマンド "sqlcmd -L"(Lは大文字にする必要があることに注意)を使用して、ネットワークで使用可能なすべてのSQLServerサーバーを表示することもできます。
ここに画像の説明を挿入

SQLServer構成でTCP / IPを有効にするには、
  複数のSQLServerサーバーがTCP / IPをサポートして、ネットワークを介して相互に通信する必要があります。SQLServerサーバーをリモートで接続するには、TCP / IPが有効になっていることを確認する必要があります。 。上記の手順に従ってSQLServer構成マネージャーを開き、SQL Serverネットワーク構成を開き、セットアップするデータベースを選択して、[TCP / IP]をクリックし、右クリックして有効にします。必要に応じて、名前付きパイプを有効にすることもできます。SQL Serverサービスを再起動した後、すべての変更を有効にする必要があることに注意してください。
ここに画像の説明を挿入

WindowsファイアウォールでSQLServerのポート番号を開く
  データベースサーバー自体を何度も設定した後、リモート接続を正常に確立できないことがよくあります。このとき、ファイアウォールが機能しているかどうかを検討する必要があります。デフォルトでは、多くのポート番号とサービスがファイアウォールによってブロックされており、リモートでアクセスしたり実行したりすることはできません。SQLServerのデフォルトのポート番号も例外ではありません。SQL Serverに例外を追加するには、Windowsファイアウォールをリセットする必要があります。手動で変更しない限り、SQLServerのポート番号はデフォルトで1433です。このポート番号をWindowsファイアウォールに追加します。SQL Serverの名前付きインスタンスがある場合は、SQLServerブラウザーもWindowsファイアウォールに追加する必要があります。(SQL Serverの名前付きの例は後で紹介します)
  Windowsコントロールパネルを開き、[Windowsファイアウォール]-> [設定の変更]-> [例外]->
ここに画像の説明を挿入
ここに画像の説明を挿入
[ポートの追加]を選択し、ポップアップダイアログボックスで[ポートの追加...]をクリックして、次のように入力します。
  名前:SQL
  ポート番号:14333
  プロトコル:TCPを選択
ここに画像の説明を挿入
ここに画像の説明を挿入

SQL Server Managerでリモート接続を有効にする
  この手順は通常、データベース管理者によって無視されます。リモートデータベース接続が有効になっていない場合、データベースインスタンスはローカルでのみ接続でき、リモートでは接続できません。リモート接続を有効にすることも非常に重要です。デフォルト設定ではリモート接続は禁止されています。次の図に示すように、SQL Server Management Studioを開き、データベースインスタンスを右クリックして、[プロパティ]メニューを選択します。
  ここに画像の説明を挿入

開いたウィンドウで、左側の[接続]を選択し、[このサーバーへのリモート接続を許可する]をオンにします。ここに画像の説明を挿入

SQLServerブラウザサービスを有効にします。
  デフォルトのインスタンス名ではなくカスタムインスタンス名の代わりにSQLServerがインストールされていて、特定のTCP / IPポート番号が構成されていない場合でも、SQLServerは前述の説明に従ってリモート接続をサポートできません。ただし、SQL Serverブラウザサービスを有効にすると、動的TCP / IPポート番号を介してリモートSQLServerに接続できます。SQL Server Browserサービスの有効化は非常に簡単です。SQLServerの有効化と同様に、SQL Server ConfigurationManagerでSQLServer Browserを右クリックし、[有効化]を選択します。このサービスを有効にすると、サーバーにインストールされているすべてのSQLServerインスタンスに影響します。
  ここに画像の説明を挿入
  ファイアウォールでsqlbrowser.exeアプリケーションの例外を作成する
  前述のように、カスタム名のSQL Serverインスタンスはsqlbrowserサービスがリモート接続をサポートできるようにする必要があり、Windowsファイアウォールがサービスの実行を妨げる可能性があります。したがって、Windowsファイアウォールのsqlbrowserサービスに例外を追加する必要があります。
  まず、C:\ Program Files \ Microsoft SQL Server \ 90 \ Shared \ sqlbrowser.exeなどのsqlbrowser.exeプログラムをサーバーにインストールするためのパスを見つけます。SQL Serverがインストールされている場所がわからない場合は、Windowsでファイル名を検索できます。前に紹介したファイアウォールにSQLTCP / IPポート番号を追加する方法と同様に、sqlbrowser.exeアプリケーションにファイアウォール例外を追加します。
  データベースエイリアスを再作成します。
  SQL Serverエイリアスを作成し、それをアプリケーションで使用するのが一般的です。データベースエイリアスを使用すると、新しいサーバーやIPアドレスの変更など、データベースの場所が変更された後でも、アプリケーションのデータベース接続文字列を変更する必要がなくなります。そうしないと、データベースの場所を変更した場合、データベースを使用するすべてのアプリケーションに通知して、ソースコードまたは構成ファイルの接続文字列を変更する必要があります。これはおそらく不可能です。したがって、データベースエイリアスを使用して接続文字列を構成することは、非常に賢明な選択です。さらに、同じエイリアスを使用して異なるデータベースインスタンスを指すこともできます。エイリアスパラメータを変更すると、データベースをすぐに切り替えることができます。データベースエイリアスの作成は非常に簡単です。SQLServer構成マネージャーでエイリアスを作成するには、[エイリアス]を選択します。
  ここに画像の説明を挿入

连接问题
ホストのローカルへのTCP / IP接続、ポート1433に障害が発生しました。エラー:接続が拒否されました:接続します。接続プロパティを確認し、SQL Serverインスタンスがホストで実行されており、ポートでTCP / IP接続を受け入れていること、およびファイアウォールがポートへのTCP接続をブロックしていないことを確認してください。
com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:130)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1195)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover (SQLServerConnection.java:1054)com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:758

com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
atcom.sql.JavaConSQL。 main(JavaConSQL.java:26)

おすすめ

転載: blog.csdn.net/weixin_42041819/article/details/86112944