ブラウザでデータベースを操作できるAdminerが超便利

リレーショナルデータベースを使うとき、悩むのがデータベースクライアントツールを何にするかです。

昔はクライアントインストール型のツールしかありませんでしたが、今はブラウザベースのものがどのDBMSにも用意されていますね。

OracleだとEM Express、MySQLだとphpMyAdmin、PostgreSQLだとpgAdminも最近はブラウザベースになりました。

ブラウザベースのメリットはサーバーにアクセスすればクライアントに何にも手を入れなくても、皆に同じデータベース操作環境を提供できることです。

但し、導入には多少サーバーサイドの知識が必要なので少しハードルが高いです。
その中でも一番導入が簡単といってよいツールが「Adminer」です。

Adminerのここがスゴイ

たった一つのPHPファイルで動作する

Adminerはなんとたった1つのPHPファイルでできています!
さらにそのサイズはなんと500KBほどでとても軽い!

導入するのに必要なのはPHPの実行環境とこのファイルだけです。
Adminerのファイルは公式サイトからダウンロードできます。

ダウンロードしたファイルをPHPが稼働できるサーバーのドキュメントルートに配置すればそれで導入完了です。
ローカルにWebサーバーを建ててるクライアントならlocalhostでデータベースにアクセスすることが可能です。

デモサイトもあるので操作感を確認することができます。

サポートDBMSが豊富

もう一つの特徴はサポートしているDBMSが豊富なところです。

ログイン画面のドロップダウンでDBMSを選択するのですがそこに対応DBMSが書かれています。

β版もありますが、かなりの数のDBMSに対応しています。

Adminerの導入方法

とっても簡単ですが一応解説です。 Adminerのサイトに行き「Downloads」からAdminerをダウンロードします。
MySQLしか使わないならMySQLに最適化している「for MySQL」バージョンを選んだ方がよいです。
そのほかのDBMSを使うなら通常版を。
SSHなどでサーバーへアップロードして公開ディレクトリに配置してアクセスするだけです。

手元にXAMPP環境があれば「htdocs」配下に置けば完了です。

簡単ですね!

その他設定

デザインの変更

Adminerのサイトの「Alternative designs」からCSSをコピーし、同階層のディレクトリに「adminer.css」の名前で保存することでデザインを変更できます。

アクセス制御

開発環境ならよいですが、インターネットに公開された環境では誰でもアクセスできて危険です。

使うときだけ置く運用や、ファイル名を分かりにくい名前に変えるのもアリですが、別途PHPスクリプトを用意することでアクセス制御がかけれます。

任意のPHPスクリプトを実行した後でadminerをrequireすればいいのです。
<?php
$acl = [//↓アクセスを許可するIPを指定
    '::1',  //localhost
    'xxx.xxx.xxx.xxx',
];

if(!in_array($_SERVER['REMOTE_ADDR'], $acl)){
    header("HTTP/1.0 404 Not Found");
    exit;
}

require '../adminer-4.7.1-mysql.php';
このようなPHPファイルを公開ディレクトリに置いて、adminer本体は別の階層に置きましょう。
これで許可されていないIPからadminerにアクセスすることを防ぐことができます。
以上。
ブラウザベースのデータベースクライアントとしては、これ以上ないくらい導入簡単なので是非試してみてください!

では。