24 August 2007

SQL Server 2005 ネットワーク接続できない…

SQL Server 2005でネットワーク接続できない。

M:\>osql -E [SQL Native Client]名前付きパイプのプロバイダ : SQL Server への接続を開けません でした [2]. [SQL Native Client]ログイン タイムアウトが時間切れになりました [SQL Native Client]サーバーへの接続確立時にエラーが発生しました。接続先が SQL Se rver 2005 である場合は、既定の設定では SQL Server がリモート接続を許可していないことが原因である可能性があります。

というエラーメッセージが出ます。

SQL Server Configuration Manager で設定を確認したところ

SQL Server 2005 のサービス
  SQL Server (SQLEXPRESS)   状態:実行中、開始モード:自動
  SQL Server Browser        状態:停止、開始モード:その他

SQL Server 2005 ネットワークの構成 > SQLEXPRESS のプロトコル
  共有メモリ  :有効
  名前付きパイプ  :無効
  TCP/IP  :無効
  VIA  :無効

@ITの記事 『SQL Server 2005でネットワーク接続を有効にするには?』を参照して、設定変更する。

SQL Server 2005 ネットワークの構成 > SQLEXPRESS のプロトコル > TCP/IP

  変更前:
  TCPポート:空欄
  TCP動的ポート:1440

  変更後:
  TCPポート:1433
  TCP動的ポート:空欄

設定後の状況は次のようになる

20070824-sqldlg02.png
SQL Server Configuration Manager の サービス設定画面

20070824-sqldlg03.png
SQL Server Configuration Manager の プロトコル設定画面

20070824-sqldlg01.png
SQL Server Configuration Manager の TCP/IP設定ダイアログ


少し古い SQL Server 2000 を利用している場合は、SQL Server Network Utility で、TCP/IPを有効 (ポート:1433)とする。

20070824-dedlg01.png

また、SQL認証を有効とするため、次のレジストリを修正する。(キーが無い場合は追加する)

HKEY_LOCAL_MACHINE\Software\Microsoft\MSSqlserver\MSSqlServer\
  LoginMode (REG_DWORD) = 2

HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\MSSQLSERVER\MSSQLServer\
  LoginMode (REG_DWORD) = 2