外部接続が許可されていないレンタルサーバのデータベースにローカルPCからODBC接続する

今回はさくらインターネットなど外部接続を許可していないレンタルサーバのデータベース(今回はMySQL)にローカルPCのAccessやExcelからもODBC経由で接続出来る方法を紹介します。

SSH接続に便利なツール「PortForwarder」

このようなケースの場合、SSHのポートフォワード機能を利用してlocalhostとしてレンタルサーバのデータベースに接続します。

通常SSH接続をする際にはtera termやPuTTYなどのSSHクライアントツールを利用する事も多いですが、今回は簡単・シンプルに利用・接続できる事でおすすめの「PortForwarder」というフリーツールを利用してみます。

インターフェースがとてもシンプル![Connect]ボタンをクリックしてパスワードを入力するだけでSSH接続とポートフォワードが一発で実行出来ます。

PortForwarder

接続後はアプリ自身がタスクバーに格納されて隠れるので作業の邪魔になりません。

PortForwarder

PortForwarderは以下のページからダウンロードできます。
PortForwarderダウンロードページ

バイナリから「PortForwarder-2.9.0.zip」をダウンロードし任意のフォルダを作成して解凍して下さい。

PortForwarderの設定方法

以下の設定はさくらインターネット、スタンダードプランのMySQLに接続する為のサンプル設定です。

  1. 解凍したフォルダにconfig.txtを作成しサーバへの接続情報を入力します。

    config.txt

    Host:Test_Host(任意の接続名)
    HostName:xxxxxx.sakura.ne.jp(接続するサーバのホスト名)
    User:xxxxxx(SSH接続するユーザー名)
    LocalForward:3306 mysqxxxxx.db.sakura.ne.jp:3306
    (ポート転送を設定。さくらインターネットのMySQLのサーバ名、ポートを指定)

  2. 解凍したファイルに「PortForwarder.exe」があります。一度起動させて下さい。
  3. exeを起動するとカレントフォルダに「PortForwarder.ini」が作成されます。これをメモ帳などのテキストエディタで開いてください。
  4. PortForwarder.iniの以下の項目にそれぞれの設定を記載して下さい。

    PortForwarder.ini

    ConfigFolder:インストールしたフォルダ名(例:C:\PortForwarder)
    ConfigFile:作成したコンフィグファイル名(例:config.txt)
    AutomaticallyHide:true(接続が完了した後に自動でタスクバーに隠れる設定)
    ※RecentHostはこの時点で入力しなくても大丈夫です。

PortForwarderを起動してSSH接続してみましょう。

それでは再度、PortForwarder.exeを起動しましょう。起動したら[Host:]のコンボボックスをクリックして先ほどコンフィグファイルに入力したホスト名を選択します。
[Connect]ボタンをクリックして接続しましょう。
PortForwarder

初回接続時にはホストリストへの保存の確認メッセージが表示されます。ここは[はい]をクリックして次に進みましょう。
PortForwarder

ログインパスワードの入力画面が表示されますのでパスワードを入力しましょう。
PortForwarder

これで接続完了です。PortForwarderはタスクバーに格納され隠れます。
いかがでしょうか?かなり簡単では無いでしょうか?

MySQL ODBCの設定を行います

事前にMySQL ODBCはダウンロードしてインストールして下さい。
MySQL ODBCダウンロード

ダウンロードするODBCはご利用の環境にあわせて選択して下さい。尚、以前のエントリーでODBCに関する注意点もアップしていますのでそちらも合わせてご参考下さい。

MySQL ODBCの設定方法は以下の通りで、[TCP/IP Server]をlocalhost(または127.0.0.1)にする以外はその他同様の設定です。
※参考画面のODBCのバージョンは5.1です。
MySQL_ODBC

文字化けを防ぐため文字コードも設定しましょう。
[Details>>]をクリックして[Character set]にcp932を設定しましょう。
MySQL_ODBC

以上でMySQL ODBCの設定は完了です。
これでAccessやExcelからもODBC経由でMySQLを利用する事が可能になります。

外部接続が許可されていないレンタルサーバのデータベースにローカルPCからODBC接続する” に対して4件のコメントがあります。

  1. tsgr より:

    さくらのレンタルサーバ ビジネスではここに書いてある通りでできたのですが、マネージドサーバではできませんでした。

    【状況】
    PortForwarderで「Connect」ボタンで「Status: Connected」にはなるのですが、mysqlクライアントで接続しようとするとPortForwarderが「channel 2: open failed: connect failed: Connection refused」というメッセージを出し、切断されてしまう。

    マネージドサーバのコントロールパネルでは「データベース サーバ」の欄は「localhost」書かれており、phpMyAdminのURLはhttps://secureXXXXX.sakura.ne.jp/phpmyadmin/となっています。
    config.txtのHostNameにXXXXXX.sakura-ne.jp、secureXXXXX.sakura.ne.jpのどちらを指定してもダメでした。おそらく、サーバのセキュリティが厳しくなっていてそもそも無理なのだと思います。
    もし、マネージドサーバでも成功した方がおられましたら情報をお願いします。

    1. infith より:

      tsgrさん
      コメントありがとうございます。
      残念ながらマネージドサーバは使ったことがありませんが以下の設定ではだめでしょうか?

      Host 任意の名称
      HostName XXXXXX.sakura-ne.jp(もしくはサーバのIPアドレス)
      User XXXXX
      LocalForward 3306 localhost:3306

      ※既にお試しの場合は申し訳ありません・・・。

  2. tsgr より:

    LocalForwardのところをlocalhostにですね。
    これであっさり行けました。ありがとうございます。

    1. infith より:

      うまくいって良かったです!

コメントは受け付けていません。