メンチカツには醤油でしょ!!

AWS/Java/Node.js/Spreadsheets/Docker/Jenkins/コミュニティ・勉強会レポを主とした技術系ブログ

Adminerが手軽で便利。MySQLなどデータベースに繋ぐ

Adminerとは

Webブラウザから使用するPHP製データベースクライアントです。
サブタイトルにDatabase management in a single PHP fileと記載のある通りphpファイルを置くだけです。
phpMyAdminに似ていますが、MySQL以外にも対応しています。

発音はアドマイナーです。

公式サイト https://www.adminer.org/
GitHub vrana/adminer: Database management in a single PHP file

phpMyAdminよりイイ

インストールは公式サイトからダウンロードして、FTPPHPファイル置くだけですから手軽です。使いにくいレンタルサーバーの管理画面からphpMyAdminを入れてetc...とやらなくて良いのです。
たとえばCakeであればFTP./app/webroot/配下にダウンロードしたadminer-4.3.1-mysql.phpを置くだけで使えます。

何が良いかって、緊急時にサクッと繋げられるのが良いですね。

f:id:ryoichi0102:20170926174522p:plain

上記キャプチャがログイン画面です。
一通りの情報を入力するところがありますね。
ポートの指定は サーバー名:ポート番号 です。(例 127.0.0.1:3306)
3306の場合は省略可能です。

ログイン後はphpMyAdminと同じように、SQLの発行やデータのインポート/エクスポートなど色々出来ます。

※ 緊急時の利用であれば、作業が終わった後にアップしたphpファイルを消しておくことをオススメします。

余談: ファーストサーバーがZenlogicに移行した影響で…

通知から1ヶ月ぐらいでサクッと移行されてしまった気がするのですが、移行前のMySQL環境がポート番号を変更され、localhostからの接続ができないというナカナカの対応をしてくれたようです。

Request URL: /
Stack Trace:
#0 /app/webroot/index.php(108): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
#1 {main} yyyy-mm-dd hh:mm:ss Error: [MissingConnectionException] Database connection "Mysql" is missing, or could not be created. Exception Attributes: array (
'class' => 'Mysql',
'message' => 'SQLSTATE[28000] [1045] Access denied for user \'mysqluser\'@\'localhost\' (using password: YES)',
'enabled' => true, )

こんなん出るしね。
復旧にはDB接続設定を、localhostからループバックアドレス127.0.0.1に変更して、ポートの指定を変更しないといけないという対応。
特に下線の対応がなかなかのノーヒントというか、宝探し的というか、情報が纏まっていないというか…

DBのダンプを取って移行しようにも、外部からの接続が不可だし(これは仕方ないとして)、phpMyAdminが不可になってて、管理画面からのバックアップ機能も停止。
陸の孤島的な。。

そんな時はAdminerですよ!

参考

Adminer / Bugs and Features / #287 Connect to another port