SSH非対応のレンタルサーバーでMySQLクライアントを利用する(HTTPトンネルとは?)

(一部を除き)レンタルサーバーではMySQLデータベースの操作にphpMyAdminを採用してます。便利なツールですが、Webベースのアプリケーションなので、どうしてもレスポンスに問題があったり、使い勝手もデスクトップクライアント(MySQLクライアント)に劣ります。

まぁ、レスポンス性能についてはphpMyAdminの問題ではありません。ネットワーク性能やサーバー性能に依存するので、レンタルサーバーである限りキビキビとした動作を期待するのは酷でしょう。

それならMySQLクライアントを使えば良いのですが、レンタルサーバーにあるMySQLサーバーのポート(3306番)はセキュリティ対策のため、基本的に閉じています。つまり、データベースへ外部からアクセスすることはできません。

  • MySQLクライアント
    • Windows「HeidiSQL」、Mac「Sequel Pro」、マルチプラットフォーム対応「MySQL Workbench」など。

そこで、多くの場合SSHトンネル(ポートフォワード)と呼ばれる方法によって、MySQLクライアントをデータベースに接続します。SSHトンネルについては以下の記事をご覧下さい。

しかし、ほとんどのレンタルサーバーではSSH非対応のため、phpMyAdminしか選択肢がありません。

Navicat&HTTPトンネル

そこで 「HTTPトンネル」 対応のMySQLクライアント 「Navicat」 が登場します。

Navicatは、Windows、Mac、Linuxに対応しています。残念ながら、ライセンス1つで全OSに対応するわけではないので、必要なOS毎に購入する必要があります。

HTTPトンネルの仕組みは非常に単純です。MySQL(データベース)を操作するPHPスクリプト(標準では、ntunnel_mysql.phpというファイル)を配備して、Webサーバー(PHP)経由でデータベースにアクセスしているだけです。つまり、phpMyAdminのデータベース操作部分を抽出したものとも言えます。

phpMyAdminはデータベースのデータ以外の情報(画面を構成するデータなど)も転送するため、データのみ転送するNavicatがレスポンス的には有利です。

仕組みは単純ですが、ほとんどのMySQLクライアントには装備されていないためNavicatの特徴とも言えます。また、仕組みを考えれば分かりますが、どのようなレンタルサーバーであっても動作します。

レンタルサーサーバでなければSSHで事足りるので、そこまで需要のある機能ではないのかもしれません。それでもSSH非対応レンタルサーバーのデータベースを頻繁に操作するなら、Navicatの導入を検討してもよいと思います。

設定は非常に簡単です。ここでは ロリポップ! のデータベースを操作する方法を説明します。ロリポップ!もチカッパやビジネスならSSHに対応しているので、ここではロリポプランを対象にしてみましょう。

  1. 「新しい接続」画面を表示する。
  2. 「HTTP」タブを選択します。
  3. 「HTTPトンネルを使用する」をチェックします。
  4. 「名前を付けてトンネルスクリプトを保存」をクリックして、「ntunnel_mysql.php」というファイルを生成します。名称は自由に変更できます。
  5. 生成されたファイルをFTPクライアントでサーバーに配備します。HTTPでアクセス可能なディレクトリならどこでも構いません。
  • 必要に応じてBASIC認証を設定してください。
  1. 「トンネルのURL」に5.で配備したファイルのURLを入力します。
  2. BASIC認証を設定したなら、アカウント情報を入力します。
  3. 「基本」タブを選択します。
  4. 「ホスト名/IPアドレス」にロリポップ!のデータベースのアドレスを入力します。ロリポップ!はWebサーバーとデータベースが分かれているので、「localhost」ではつながりません。コントロールパネルでデータベースのアドレスを調べましょう。
  5. 「ユーザー名」「パスワード」にデータベースのユーザーアカウントを入力します。
  6. 「接続をテストする」をクリックして接続テストを実行します。問題がなければ「OK」をクリックします。

MacユーザーならApp Storeで購入できます。Navicatにはエンタープライズ、スタンダード、エッセンシャルの3種類があります。エンタープライズ版になると、データモデリングツールが付属します。

スタンダードとエッセンシャルの違いは、レコードのフィルタリング機能、コード補完、SQLコード整形/縮小、バックアップ(復元)機能、などでしょうか。コード補完がないのは少しつらい気もしますが、値段差がかなりあるので趣味で使うならエッセンシャルで十分でしょう。

App Store販売は英語版です。日本の代理店では日本語版が販売されていますが、App Store版より少し高くなっています。14日間のお試し版もあるので、気軽に試してみましょう。

この記事ではMySQLのみ説明しましたが、Navicatは「MariaDB」「SQL Serer」「Oracle」「SQLite」「PostgreSQL」にも対応しています。

Windowsユーザーであれば、他にもWebyogの SQLyog というMySQLクライアントもHTTPトンネルに対応しています。ただ、国内ではあまりユーザーがいないような感じですね。最も安価なプロフェッショナル版の1ユーザーライセンスが 99ドル となっています。