SQL Server が使用しているポートを確認する方法
SQL Server が使用している TCP/IP ポートを確認する
SQL Server のデータベースエンジンが使用する TCP/IP ポート番号は、デフォルトでは以下のようになっています。
- デフォルトインスタンス: 1433
- 名前付きインスタンス: ダイナミックポート
ですが、使用するポート番号は変更・固定可能なので、デフォルトインスタンスでも 1433 でない可能性もあります。
今回は、TCP/IP プロトコルが有効化されている前提で、SQL Server が使用しているポートを確認する方法をご紹介します。
SQL Server 構成マネージャーで使用しているポートを確認する方法
こちらは私の PC の SQL Server 構成マネージャーですが、今回はデフォルトインスタンスの SQL Server(MSSQLSERVER) と、名前付きインスタンスの SQL Server(MSSQLSERVER2017) の使用しているポート番号を確認してみましょう。
まずはデフォルトインスタンスから確認します。
左側の [SQL Server ネットワークの構成] で [MSSQLSERVER のプロトコル] を選択し、右側で [TCP/IP] で右クリックして [プロパティ] を選択します。
プロトコルのタブの [Listen All] が [はい] の時は、IPアドレスタブの一番下の [IPAll] の箇所が有効になっています。
ここで、TCP Port として設定されて番号 (1433) が固定されているポート番号です。
SQL Server をスタートする際に、この固定されているポート番号は既に他使われている場合は SQL Server をスタートすることができません。
ですので、この値が SQL Server がスタートされた後に変更されたのでなければ、これが現在使用されているポート番号になります。
次に、名前付きインスタンスのポート番号を確認してみましょう。
先ほどのように、[SQL Server ネットワークの構成] で [MSSQLSERVER2017 のプロトコル] を選択し、右側で [TCP/IP] で右クリックして [プロパティ] を選択します。
プロトコルのタブの [Listen All] が [はい] なので、IPアドレスタブの一番下の [IPAll] の箇所を見ます。
今度は TCP Port ではなく、TCP Dynamic Portsにポート番号 (51258) が設定されています。
名前付きインスタンスの TCP Dynamic Ports の値はデフォルト 0 (ダイナミックポートを使用するという意味) になっていて、TCP/IP を有効化して SQL Server を再起動した際に設定されます。
SQL Server を開始した際にこのポート番号が他で使われていない限り、ずっとこのポート番号が使われます。
もしそのポート番号が空いていない場合は、別のポート番号を使い、TCP Dynamic Ports の値も更新されます。
ですので、こちらも、ここで見つけたポート番号が SQL Server がスタートされた後に変更されたのでなければ、これが現在使用されているポート番号になります。
SQL Server ログから使用しているポートを確認する方法
SQL Server を開始した時に書き出されるログで、listen しているポート番号を確認することもできます。
ERRORLOG ファイルをキーワードで検索してもよいですが、プロトコルのタブの [Listen All] が [はい] の時は、以下のクエリーを実行しても確認可能です。
xp_readerrorlog 0, 1, N'Server is listening on [ ''any''';
MSSQLSERVER
MSSQLSERVER2017
プロトコルのタブの [Listen All] が [いいえ] の時は、any の箇所を除いて実行してみてください。
xp_readerrorlog 0, 1, N'Server is listening on';
最後に、SQL Server Management Studio から [IPアドレス],[ポート番号] で接続することで、見つけたポート番号が正しいか確認することができます。
[例]
127.0.0.1,51258
localhost,51258