XServerのMySQLにODBC接続
[Home]

 ODBCで接続

 最初に

ODBC(Open Database Connectivity)は何かと言えば、Microsoftが提唱した、データベースにアクセスするための標準的仕様(API)のことです。
ここでは XServer に MySQL で作成したデータベースに MySQL ODBC 8.013 を使って接続する方法を記載します。
XServer画像
XServer には、標準で MySQL と SQLite がインストールされておりますので、どちらのデータベースも ODBC を使用して自宅のパソコンからアクセスする事ができます。
ODBC を経由した場合は、プログラムからデータベースにアクセスする事も容易で、例えばエクセルからアクセスするとか、Microsoft Access から接続する事も出来るようになります。

XServer の場合(最近はどこのレンタルサーバーでも同じでしょうが)は、直接 MySQL のデータベースをアクセスする事はできませんので、一旦 SSH でメインのサーバーに接続してから、MySQL のサーバーに接続する事になります。 その場合は接続経路の通信内容も暗号化されておりますので、よりセキュリティの高い接続になります。

私の場合は、競馬のデータベースをレンタルサーバー上に構築して、リアルタイムでデータを更新しようと考えておりますので、ODBC による接続環境は必須であると言えます。 尚、前述したように XServer との接続には SSH による接続を行いますので、あらかじめXServerをSSH化をご覧いただいて設定をしておく必要があります。 又、ODBC 接続をするために、今回は PuTTY(パティ)を使用しましたので、あらかじめMySQLに外部接続のページの下段に記載の「コマンドラインで接続」をご覧いただいて、PuTTY をインストールしてください。 上記の2つのソフトが正常に動作をしておりませんと、MySQL に ODBC する事はできません。(あくまで、ここで記載している方法ではですが)


(XServer の社内案内に掲載されていた画像を一部加工して作成)



 ODBCドライバのインストール

ODBCドライバのダウンロード先は https://dev.mysql.com/downloads/connector/odbc/ になります。
私は、Windows7 の32ビットにインストールしましたので、特に問題は無かったのですが、64ビットの OS に64ビット版の ODBC ドライバをインストールした場合は、接続が出来なかった例がサイト上に見受けられました。 そこでは、64ビットの OS でも32 ビット版の ODBCドライバのインストールを薦めておりましたが、その場合でもコントロールパネルからの操作がどうのこうのと記載されておりました。 余程の素人でも無ければ対処はできるでしょうから、ここでは幼稚園児向けの解説は行いません。
と言いながら、ヒントだけ転記しておきます。 Windows7などで、64bit環境のOSを使っていて、32bit版のODBCを設定したい場合には「%systemdrive%\Windows\SysWoW64\Odbcad32.exe(C:\Windows\Syswow64\odbcad32.exe)」からODBCデータソースアドミニストレーターを開きます。

コネクションは、データソース(ODBC) から、システム DSN で作成しました。 以下に DSN の差異について解説します。

(1)ユーザー DSN : ログインしているユーザーのみが利用する場合は、こちらを選択します。セキュリティ面を考慮するなら、ユーザーDSNの設定が適切でしょう。
(2)システム DSN : 対象となるPCの全ユーザーが利用できます。
但し、登録するには Administrator 権限が必要です。対象となる PC が共有 PC で、他のユーザーもこの ODBC 接続を使う場合は、こちらを選択します。
(3)ファイル DSN : セキュリティ面で、最もゆるいのがこの DSN になります。ファイル DSN を作成すると DSN の設定情報がファイルとして作成されるため、同じ設定を他のPCで実施したいときには、作成した dsn ファイルをコピーするだけで良いので、とても簡単に複数のPCへの設定が可能です。但し、コピーしてしまえば、簡単にアクセスできてしまうので、接続対象となるデータベースに対してファイヤーウォールを細かく設定するなどのセキュリティ面での対策を考慮する必要があります。

mysql8画像
これは自分の環境での設定そのものです。 内容をぼかしたり、隠したりする人が非常に多いですが、それでは解説する意味がないでしょう。

@は任意入力ですが、私の場合はいくらなんでも長過ぎますね。
Aは「 127.0.0.1 」と書きます。 localhost と記入しても同じ結果になりますが、IP アドレスの記載の方が、確実性は増します。
Bは10000とか20000とか記入している人が多いですが、サーバーのポートと競合するとは思えませんので、3306 で良いと思います。
(まだ、運用をしておりませんので、断定は致しません)
Cは接続する MySQL のデータベースのユーザー名を記入します。 XServer では、頭にドメイン名が必ず付きます。
Dは MySQL のパスワードを記入します。
Eは接続する MySQL のデータベースのデータベース名を記入します。データベース名にも頭にドメイン名が必ず付きます。

他の項目は一切いじる必要はありません。
記入した後に「Test] のボタンを押すと、接続テストを行う事が出来ます。 以下のような画像が出ると思います。
mysql9画像
但し、接続が成功するのは、 PuTTY であらかじめ SSH を使って接続している状態の場合です。

  PuTTYの設定

PuTTY の設定につきましては、 MySQLに外部接続 で設定した内容に以下の部分を追加しただけです。
mysql10画像
「トンネル」にポート転送のオプションを追加しました。
見ての通り、転送するポート一覧に、MySQL のアドレスとポート番号を追加しております。

その他に、「接続」にセッションをアクティブに保つための null パケットの送信を 0 から 60 に変更しました。
mysql11画像
SSH の接続は接続が無いと自動的に切断されるとの情報がありましたので設定しておりますが、実際に設定が必要なのかは確認しておりません。
実運用を始めれば、色々と設定が必要になるでしょう。

PuTTY は、接続された状態でコマンドライン入力になっておりますので、直接 MySQL を操作する事もできます。
MySQL との接続は(私の環境では)次のコマンドで行います。 mysql -h mysql1111.xserver.jp excelumachan_uma -u excelumachan_co5 -p
-P の後ろに、スペースを入れないでパスワードを記入すれば、パスワード入力を省く事が出来ます。
mysql12画像
mysql1111.xserver.jp は、XServer から指定された、MySQL のサーバー番号です。
excelumachan_uma が、接続するデータベース名になります。
excelumachan_co5 が、excelumachan_uma を使用するユーザー名です。

接続後にMySQL のパスワードの入力を求められますので入力します。パスワードの内容(一般的にアスタリスク)は画面上には表示されません。
画像で確認できるように、XServer の MySQL と接続されたのが確認出来ます。
ここまで来れば、ローカルに作成した MySQL に接続したのと変わりがありませんので、操作方法はサイト上に掃いて捨てる程に記載されております。

[Home]