【ワレコ解説】Windows VPSでSQL Server Expressを使う(4/4)【設定と動作テスト編】

この記事は約9分で読めます。
スポンサーリンク

当記事は、以下の関連記事四部作の四番目です。

  1. Windows VPSでSQL Server Expressを使う(1/4)【VPS契約編】
  2. Windows VPSでSQL Server Expressを使う(2/4)【VPS設定編】
  3. Windows VPSでSQL Server Expressを使う(3/4)【DBインストール編】
  4. Windows VPSでSQL Server Expressを使う(4/4)【設定と動作テスト編】 当記事

この時点では、

  • Windows VPSの契約が完了していて、
  • IIS関連もインストールや動作設定が完了していて、
  • SQL Server 2016 Expressのインストールが完了していて、
  • saユーザーでログイン出来るように設定が完了している

と言う前提です。

当記事では、このWindows VPS上にインストールしたSQL Server 2016 Expressにリモートで接続してデータベースを操作するためのネットワークやファイヤーウォールの設定を行う手順の紹介です。

この作業が完了すると、自宅のパソコンからWindows VPS上のSQL Server 2016 ExpressのDBをネットワーク経由で制御できるようになる。

以下の説明はあくまでワテの理解なので、間違っている部分や勘違いなどもあるかもしれないのでその点はご注意下さい。

繰り返しになるが、ワテがお試し契約した某会社のWindows VPSサーバーの仕様は以下の通り。

OS Windows Server 2012R2 Standard
メモリ 2GB
SSD 120GB
CPU 3コア
月額 約2000円

表 1 お試し契約したWindows VPSサーバーの仕様

ちなみにこのお試し契約したVPSは使ってみて快適だったのでその後、本契約をした。

このVPSサーバーです。

ABLENETレンタルサーバー

その辺りの経緯は下の記事で紹介しています。

では、本題に入ろう。

スポンサーリンク
ワテ推薦のプログラミングスクールで学ぶ
スポンサーリンク
スポンサーリンク

VPS側のWindowsファイヤーウォールの設定

自宅のパソコンからVPSのWindows Server OSにリモートデスクトップ接続する。

そのWindows Server OSで以下の設定を行うのだ。

コントロールパネルからWindowsファイヤーウォールの設定を開く。

詳細設定を開く(下図)

左側の受信の規則をクリックして、右側の新しい規則をクリックする。

まず、全般タブをクリックして、適当な名前を付ける。

SQL Serverの場合には TCP ポートの 1433を使うのがデフォルトらしいのでその番号を名前にしてみた。

次に、プロトコルおよびポートタブをクリック(下図)

以下のようにセットする。

次に、スコープタブをクリックして、リモートIPアドレスを設定する。

これは、リモート接続可能なパソコンを指定する機能だ。

なので、通常は自宅のパソコンのIPアドレスをセットする。

自宅パソコンが固定IPアドレスなら、

192.168.1.100

のように指定すれば良い。

一方、動的に変化する場合には、例えば下位の16ビットが変化する場合なら

10.10.0.0/16

のように指定すれば

10.10.0.0 – 10.10.255.255

までのIPアドレスからは接続許可の設定となる。

あとはそれ以外に、

リモートユーザーとか

リモートコンピュータ

などのタブもあるが、それらはデフォルトのままで良い。

IPアドレスに関する注意事項

上記のように特定のIPアドレスからのみSQL Server Express 2016にリモート接続許可する設定をしておくと安心である。

ところが、ある日突然自宅PCからいつものようにSQL Server Express 2016に接続しようとするとセッションがタイムアウトしましたみたいなエラーで接続出来ない事件に巻き込まれた事がある。

特に自分では何かを変更した心当たりはない。

自宅のパソコンもWindows10にもおかしな点は見当たらない。

またWindows Server 2012R2やSQL Server Express 2016も正常に動作しているし。

おかしい。。。

自分で何かウッカリ削除してしまったとか、レジストリを弄って壊したとか、そんな事故を起こした結果、接続出来ないトラブルに巻き込まれたのなら話は分かる。

ところが何もしていないのに、突然、全く接続が出来ないのだ。

なお、Windows Server 2012R2にリモートデスクトップして、そこでSSMSを開いて、sa認証でログインしたら、全く問題無くデータベースの操作出来るし。。。

なので、パスワードの間違いなどの認証エラーでも無いし。。。ますます分からない。

Visual StudioやSQL Server Express 2016やSQL Server Management Studioの再インストールを試したが解決しない。

お先真っ暗だ。

で、ふと上でやっている接続許可しているリモートIPアドレスの設定が気になった。

勝手に設定値が変わるはずは無いのだが、念のために開いてみた。

その画面を開くのは、数か月ぶりだ。

そうすると、数か月前に自分で設定した値がそのまま入っている。まあ当然である。

で、何となく、自分のパソコンのIPアドレスを確認してみた。

そしたら、数か月前に設定したアドレスと全く異なるIPアドレスだったのだ。

もちろん、同じプロバイダーでも、接続をリセットすると、末尾の数字が変わる事はある。

10.10.XXX.YYY 変更前

10.10.AAA.BBB 変更後

こんな感じ。

ところが、ワテの場合には、なぜか、先頭の数字も全く異なる値に変わっていたのだ。

プロバイダー業者は変えていない。

なんでやねん?

まあ要するに、ワテが加入しているプロバイダー業者は、グローバルIPが全く別の数字に変わる事もあったのだ。大抵のプロバイダー業者なら、ダイナミックにIPが変っても先頭の数字は変わらないと思っていたワテが迂闊だった。

と言う事で、もし皆さんもある日突然、リモート接続でSQL Serverに接続出来なくなった場合には、まず最初に上記のIPアドレスの許可設定と現在の自分のIPアドレスを見直すと良いだろう。

ワテの場合、もしその事実に気付かなかった場合には、Windows10の再インストールを危うく試みるところであった。危ない危ない。

TCP/IPネットワークの設定

SQL Server 構成マネージャを開く

スタートメニューから

SQL Server Configuration Manager

を実行しても良いが、見つからない場合には、ファイル名を指定して実行で

SQLServerManager13.msc

を実行すれば良い。

 

デフォルトでは下図が開くので、

まず、TCP/IPを有効化する。

その為には、無効という文字の辺りで右クリックするとメニューが出るので有効化を選択すれば良い。

次に、プロパティを表示して(下図)、

IPアドレスのタブをクリックして、

IP ALLの設定部分が末尾にあるのでそこまでスクロールする。

その中で、

TCP Port 1433

と入れてOKをクリックすると完了だ。

ちなみに、この1433は、前節のWindowsファイヤーウォールの設定で指定したポート番号なので、もし違う数字に変更したい場合には、それらの二ヶ所で同じ数字に変更すれば良い。

これで無事に自宅パソコンのSQL Server Management Studioから、このWindows VPSサーバーの固定IPアドレスを指定して、saログインが可能となる。

リモート接続実験

具体的には、以下のようにサーバー名を指定する。

IPアドレスに続いてカンマとポート番号1433を入力する。

あとは、認証方式を SQL Server認証を選択して、

ログインユーザー名が sa

パスワードは自分で設定したパスワードを入力

それで接続をクリックすると、一瞬で接続できれば成功だ。

もし数十秒経ってエラーメッセージが出た人は、何らかの設定ミスだろう。

ワテの経験では、今まで数回この作業を行った事があるが、この説明の通りにやれば100%成功した。なのでエラーが起こるのは、単純な設定ミスの可能性が高い。

慎重に設定項目を一つずつ見直せば、必ず解決すると思う。

それで一旦繋がってしまえば、それ以降は全く問題無く接続出来るようになる。

 

以上で、一連の作業が完了した。

まとめ

全4回シリーズで、

  • Windows VPSの選定、お試し契約、
  • IISサーバーの機能のインストールや設定
  • Web Platform Installerのインストール
  • Web Deployのインストール
  • SQL Server 2016 Express のインストール
  • saユーザーの設定
  • ファイヤーウォールの設定
  • TCP/IPポート1433の有効化

が完了した。

これによって、自宅のパソコンからWindows VPSサーバー上のSQL Server 2016 Express のデータベースに対してリモートでアクセス出来るようになった。

これらの作業は、ワテの場合には年に1, 2回くらいしか行わないので良く忘れる。

今回も一年ぶりのSQL Server Expressのインストールだったのだが、インストール後にファイヤーウォールの設定などを忘れていて、リモート接続でデータベースの操作が出来なくて苦労した。

結局、ネット検索してやり方を思い出して上述した手順でやれば、無事に解決したのだが、3時間くらい費やした。

スムーズに行けば、30分も掛からない作業なのだが。

データベースを使う

この環境が整ったら、後はPHPやVisual StudioのC#を使ってデータベースを利用したプログラムを書く事が出来るようになる。

例えば、

  • Windows VPS上でIISを動かしておいて、DBを使うWEBサイトの構築
  • そのDBのデータを自宅パソコンから読み書きして更新する
  • あるいは自宅パソコンのACCESSとVPS上のDBをリンクしておけば双方向に連携できる

など。

と言う事で、今回やったWindows VPSのお試し契約から、DBの設定まで1時間くらいあれば完了する。

次回は、もう少しスムーズにやりたい。

 

Visual Studio 2015 Communityも無料になるし、

Windows 10も無償アップグレード出来るし、

SQL Server 2016 Expressも無料だし、

あとは、Windows Server OSもWindows 10みたいに無料で配ればいいのにと思うのはワテだけではないだろう。

マイクロソフトさん、是非、お願いします。

本を読む

SQL Serverと言えばこの松本さん夫妻が有名だ。

ワテも買おうかなと思っている。

 

初めてレンタルサーバーを借りる人向けに専用のサイトを作成してみた。

ワテ推薦のWindows VPSサーバー

ABLENETレンタルサーバー
スポンサーリンク
ワテ推薦のプログラミングスクールで学ぶ
コメントを読む

この記事には読者の方からコメントが 2件あります。
興味ある人はこのページ下部にあるコメントを参照下さい。

Database SQL Server Visual Studio VPS
スポンサーリンク
warekoをフォローする
スポンサーリンク
われこ われこ

コメント

  1. 松本 より:

    MS Accessを使用して職場で必要なものを作成していましたが、他府県の部署でも確認ができるデータベースを作ってほしいと依頼があり、いろいろと調べていたところ、このサイトに出会いました。
    自分にできることといえば VBA、SQLぐらいですが、Visual Studioを使えばなんとか出来るだろうと思い、サーバーの事どうするかと考えていた構築のイメージに、このブログがぴったりでした。
    とても参考になります。

  2. wareko より:

    松本さま
    この度は小生の記事が多少なりともお役に立てたようで、私としまして有難い気持ちです。
    今後も世間の皆様に役立つ情報を提供できるように精進して行きたいと思います。
    では、また何か良い情報などありましたらお知らせ頂けると大変助かります。