Adminerを設置する

Adminerは、PHPで作られているデータベース管理ツールです。(Apache License or GPL 2)

- phpMyAdminのようにWeb上でMySQLなど※のデータベースを操作できる (一通りのことはできる)
  - MySQL以外で使用したことはないですが、公式では下記の対応を謳っています。<br>
    MySQL, PostgreSQL, SQLite, MS SQL, Oracle, Firebird, SimpleDB, Elasticsearch, MongoDB 
- 1ファイルで作成されているため設置が簡単

という特長があり、「DBの接続情報は教えてもらったけどphpMyAdminなどの管理ツールの情報はなかった」「管理ツールの情報を教えてもらったけど管理ツールが独自のものなどですごく使いづらかった」のようなときに便利です。(他人のサーバのトラブルサポートを急にしないといけなくなった場合に特に便利)

この文書では、Adminerの基本的な設置方法と簡単な使い方を説明します。

※ 以前はWordPressの公式ディレクトリにAdminerのプラグインがありましたが、今年の夏頃(?)にWordPressの公式ディレクトリから削除されてしまったようなので、無くなって困っている方にも役に立つかもしれません。基本的にはサーバに1ファイル配置するだけです。

## 1. 配布サイトからファイルをダウンロードする

まず、https://www.adminer.org/ からファイルをダウンロードしてください。「Downloads」の部分にリンクがいろいろありますが、「Adminer X.X.X」とあるものでよいです。
2016/11/06時点の最新は4.2.5です。

![Adminer   Database management in a single PHP file.png](https://qiita-image-store.s3.amazonaws.com/0/782/d34e0e80-3479-e690-aaf0-e93c478d3957.png)

## 2. 設置する
1.でダウンロードしたadminer-4.2.5.phpを、そのままサーバの公開領域に配置してください。(FTPでアップロードでも、SSHでも、できる方法で)

…これで設置は完了です…！

## ログイン / データを確認する

アップロード後、設置した場所のURLにブラウザでアクセスするとログイン画面が表示されます。サーバのホスト名、ユーザ名、パスワードを入力してログインしてください。(データベース名は入力してもしなくてもよいです)

![ログイン   Adminer.png](https://qiita-image-store.s3.amazonaws.com/0/782/e8f41f64-dfaf-7be6-2fee-540abc76f766.png)

ログイン後、データベース名を入力しなかった場合はデータベース一覧が表示されます。

![データベースを選択してください   Adminer.png](https://qiita-image-store.s3.amazonaws.com/0/782/b8fdb327-8b9f-a728-a662-b0d3d7b895ec.png)

データベース名のリンクをクリックするとテーブル一覧が表示されます。(下記の例ではWordPressのテーブルを表示しています)

![データベース  wordpress   Adminer.png](https://qiita-image-store.s3.amazonaws.com/0/782/c217b56b-702b-24b3-2353-7dc12d533463.png)

テーブル名のリンクをクリックするとテーブル構造が表示されます。

![テーブル  wp_options   Adminer.png](https://qiita-image-store.s3.amazonaws.com/0/782/c7c38cbe-066e-a803-6439-7c2255e5b4cc.png)

データを確認したい場合は、上記の「データ」のリンクをクリックするとデータが確認できます。

![選択  wp_options   Adminer.png](https://qiita-image-store.s3.amazonaws.com/0/782/ff26bfdb-d1f5-7ae3-abfb-446216985feb.png)

画面左側の「SQLコマンド」からSQL文を実行してもよいです。

## データを追加する

データを追加したい場合は、データが表示されている画面の上部にある「項目の作成」リンクから行えます。

![選択  wp_options   Adminer.png](https://qiita-image-store.s3.amazonaws.com/0/782/ff26bfdb-d1f5-7ae3-abfb-446216985feb.png)

必要な項目を入力し、「保存」ボタンでデータを追加することができます。

![挿入  wp_options   Adminer.png](https://qiita-image-store.s3.amazonaws.com/0/782/44b4f0aa-00e5-bd26-eb79-d8b59a42c297.png)

## データを編集する

データを編集したい場合は、列の最初にある「編集」のリンクをクリックすると、クリックした行のデータを編集できます。

![選択  wp_options   Adminer.png](https://qiita-image-store.s3.amazonaws.com/0/782/ff26bfdb-d1f5-7ae3-abfb-446216985feb.png)

データを変更し、「保存」ボタンでデータを更新することができます。

![編集  wp_options   Adminer.png](https://qiita-image-store.s3.amazonaws.com/0/782/1c094ead-f5b3-3510-d4a3-fd463a7fe1e9.png)


## データを削除する

データを削除したい場合は、各行のチェックボックスにチェック後、画面下部の「削除」ボタンで行えます。

![削除  wp_options   Adminer.png](https://qiita-image-store.s3.amazonaws.com/0/782/ccf3687b-92b1-9832-9650-93adf2b63842.png)

## その他の機能

Adminerには機能がたくさんあるので、どんなものがあるかわかるように公式ページのリード文と機能概要を引用しておきます… (意訳を併記していますが間違いがあれば教えてください)

### リード

> Adminer (formerly phpMinAdmin) is a full-featured database management tool written in PHP. Conversely to phpMyAdmin, it consist of a single file ready to deploy to the target server. Adminer is available for MySQL, PostgreSQL, SQLite, MS SQL, Oracle, Firebird, SimpleDB, Elasticsearch and MongoDB.

(Adminer (以前はphpMinAdminと呼ばれていた) はPHPで作成された多機能のデータベース管理ツールです。phpMyAdminとは違い、対象のサーバーにデプロイ(配置)しやすい単一のファイルで構成されています。AdminerはMySQL, PostgreSQL, SQLite, MS SQL, Oracle, Firebird, SimpleDB, Elasticsearch, MongoDBで利用できます。)

### 機能

- Connect to a database server with username and password<br>
  (ユーザー名とパスワードでデータベースサーバに接続)
- Select an existing database or create a new one<br>
  (既存のデータベースの選択、または新規のデータベース作成)
- List fields, indexes, foreign keys and triggers of table<br>
  (テーブル上の項目、インデックス、外部キー、トリガーの一覧)
- Change name, engine, collation, auto_increment and comment of table<br>
  (テーブルの名前、エンジン、照合順序、自動連番(auto_increment)、コメントの変更)
- Alter name, type, collation, comment and default values of columns<br>
  (列の名前、型、照合順序、コメント、初期値の変更)
- Add and drop tables and columns<br>
  (テーブルと列の追加や削除)
- Create, alter, drop and search by indexes including fulltext<br>
  (fulltextインデックスを含むインデックスの作成、変更、削除)
- Create, alter, drop and link lists by foreign keys<br>
  (外部キーの作成、変更、削除、一覧)
- Create, alter, drop and select from views<br>
  (ビューの作成、変更、削除、データ表示)
- Create, alter, drop and call stored procedures and functions<br>
  (ストアドプロシージャ、ストアドファンクションの作成、削除、呼び出し)
- Create, alter and drop triggers<br>
  (トリガーの作成、変更、削除)
- List data in tables with search, aggregate, sort and limit results<br>
  (テーブルデータの一覧、検索、集約、ソート、結果の行数制限)
- Insert new records, update and delete the existing ones<br>
  (新しい行の挿入、既存の行の更新、削除)
- Supports all data types, blobs through file transfer<br>
  (すべてのデータ型のサポート、ファイル転送を介したBLOB(バイナリデータ))
- Execute any SQL command from a text field or a file<br>
  (ファイルまたはテキストエリアからのSQL文の実行)
- Export table structure, data, views, routines, databases to SQL or CSV<br>
  (テーブル構造、データ、ビュー、ルーチン、データベースをSQLまたはCSV形式でエクスポート)
- Print database schema connected by foreign keys<br>
  (外部キーで紐付いたデータベーススキーマの出力)
- Show processes and kill them<br>
  (プロセスの表示と強制終了)
- Display users and rights and change them<br>
  (ユーザーと権限の表示、変更)
- Display variables with links to documentation<br>
  (変数の表示 (マニュアルへのリンク付き)) ※ MySQLのSHOW VARIABLES
- Manage events and table partitions (MySQL 5.1)<br>
  (イベントとパーティションの管理 (MySQL 5.1))
- Schemas, sequences, user types (PostgreSQL)<br>
  (スキーマ、シーケンス、ユーザー型 (PostgreSQL))
- Extensive customization options<br>
  (豊富なカスタマイズオプション) ※Adminerクラスを継承して各メソッドをオーバーライドする形のものです

## その他
- CSSで外観を変えたりログイン部分をカスタマイズしたりなどもできますが、使用するときにサーバーに配置して使用し終わったらサーバーから消す、という形で使うほうが楽な気がします。
- Adminerはファイルを1つにするためにJSやCSSファイル、画像ファイルの内容をバイナリ(LZW圧縮)でPHP内に含んでいるのでAdminerのソースコードを見るとどきっとするかもしれません…
- WordPressのwp-config.phpを読み込んで拡張、はできそうな気がしましたが、get_temp_dir() という関数がAdminer側にもWordPress側にもあり関数名が重複してエラーになるので諦めてログイン画面でユーザー名などを手入力したほうがよさそうです
- 書いてから 「[PHPでデータベース覗くならAdminerが便利](http://unskilled.site/php%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E8%A6%97%E3%81%8F%E3%81%AA%E3%82%89adminer%E3%81%8C%E4%BE%BF%E5%88%A9/)」 さんを見つけました… そちらを見ていただいてもよいと思います。