こんにちは。CData Software Japan リードエンジニアの杉本です。
レンタルサーバーとして有名なXServer に搭載されているRDBである MariaDB に CData Driver経由でストレートに接続できないか? という問い合わせをよくいただきます。
XServer の MariaDB はSSH経由でなければ接続できないようになっているため、通常ですとPutty などでポートフォワーディングして、その上でアクセスする必要がありますね。
しかしながら、CData MariaDB Driver ではSSHを通す機能が標準で備わっているため、そんな手間の必要なく、Driver からストレートに XServer の MariaDBに接続することが可能です。
というわけで今回は XServerのMariaDBに接続する手順を解説してみたいと思います。
ちなみにEC2をSSH Server として利用した PostgreSQLベースの接続方法については以下の記事で解説しています。
XServer側のSSH設定
まずXServer側のSSHを設定します。
併せて事前に必要となる情報を確認しておきましょう。
SSHサーバーのHost名は「サーバー情報」画面の「ホスト名」で確認できます。
ちなみにSSHユーザーはサーバーIDになるので、これも予め控えておきましょう。
続いてSSHの設定です。「SSH設定」画面に移動して「SSH設定」を「ONにする」を有効化しておきます。
SSH設定を有効化したら、SSH用のキーを「公開鍵認証用鍵ペアの生成」画面からパスフレーズを指定して生成しておきます。
以下のようなKeyファイルが生成されるので、任意のフォルダに保存しておきます。
Maria DBの追加
次にMariaDB側の設定です。ちなみに画面上はMySQLとなっていますが実際に構成されるのはMariaDBになったようですね。
予め構成しているMariaDBがあれば省略して大丈夫です。
MySQLの設定画面に移動して、MySQL データベースを追加します。
併せてDBにアクセスするMySQLユーザも「MySQLユーザ追加」タブから追加しておきましょう。
ユーザを追加したら忘れずに、作成したデータベースにアクセス権を付与しておきます。
以上でXServer側の設定は完了です。
CData MariaDB Driverのセットアップ
それではDriver側を準備します。
以下のURLからODBCやJDBC、Excel Add-inなどの各種ドライバーがダウンロードできます。それぞれ30日間のトライアルがあるので、試してみてください。
今回はWindows版のODBC Driverを利用しました。
ダウンロード後、セットアップを進めていきます。
基本的にダイアログに従って進めるだけでOKです。
セットアップ後、ODBC DSNの接続設定画面が立ち上がるので以下の通り入力します。
ポイントは「Other」のプロパティに「SSHAuthMode=Public_Key」を指定する必要がある点です。
プロパティ名 | 値 | 備考 |
---|---|---|
Server | localhost | SSH Server 経由で接続するRDBのServerアドレス |
Port | 3306 | |
User | 例)xs036215_admin | 作成したMariaDBのユーザ |
Password | YOUR_PASSWORD | MariaDBユーザのパスワード |
Database | 例)xs036215_sample | 作成したMariaDBのDB名 |
SSH Client Cert | 例)C:\Sample\xs036215.key | ダウンロードしたSSH Keyのファイルパス |
SSH Client Cert Password | 例)PASSWORD | SSH Keyのパスフレーズ |
SSH Client Cert Type | PUBLIC_KEY_FILE | |
SSH Server | sv13082.xserver.jp | XServerのホスト名 |
SSH Port | 10022 | XServerでは10022がSSHポートなので、22から変更します。 |
SSH User | 例)xs036215 | XServerのサーバーID |
Use SSH | True | |
Other | SSHAuthMode=Public_Key |
これで「接続テスト」をクリックして、以下のようにメッセージが表示されればOKです。
無事XServerに接続することができました。
おわりに
このようにオープンソース版のODBC Driverでは対応していない機能にCData Driverでは対応していることも多々あります。
もし気になる機能、こんなことできないの?といった疑問・質問があれば、お気軽にテクニカルサポートフォームまでお問い合わせください。