5
4

More than 3 years have passed since last update.

SQL Server ExpressでTCP/IP接続する方法

Posted at

Microsoft SQL Serverへのアクセス方法は、共有メモリ、名前付きパイプ、TCP/IP接続の3つで、その中でもTCP/IPが一般的です。

ExpressサーバをWindows10などにインストールして、Microsoft SQL Server Management Studio(SSMS)でローカル接続して使っているうちは共有メモリアクセスで気づかないけど、ソケット接続しようとすると1433でつながらないぞということでちょっとハマったのでメモしておきます。

SQL ServerのTCP/IPのListenポートといえばtcp:1433で有名ですが、無料版のSQL Server ExpressではWell-knownポートでのListenができないため、別のポートを使う必要があります。
image.png

SQL Server Confiruration Managerの設定

まずはSQL Server Confiruration Manager(構成マネージャー)を起動して、TCP/IPの設定を有効にします。
image.png

TCP/IPのプロパティを開いて、IPアドレスのタブの一番下にあるIPAllのTCPポートに49152~65535の間で決めます。
これを設定しないと、ポート番号がSQL Serverを起動するたびに動的に任意のポート番号が割り当てられるので面倒です。
image.png

ファイアウォールの設定

管理ツールからWindows Firewallの構成マネージャを開いて、「受信の規制」で新しい規制を登録します。
適当な名前を付けて、「プロトコルおよびポート」のタブでプロトコルの種類を「TCP」、ポート番号をSQL Server構成マネージャで設定したポート番号を入力します。
image.png

これでSQL Server側の設定は完了です。

接続テスト

SSMSでは共有メモリ接続してしまうので、HeidiSQLを使って接続テストしました。
ホスト名はlocalhostでポート番号は構成マネージャやFirewallで設定したポート番号を記述します。
ちゃんと設定されていれば接続できるはずです。
image.png

トラブルシューティング

うまくつながらない場合はユーザの設定などが怪しいかもしれません。SSMSのセキュリティのところで確認してみましょう。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4