Adminerを使用して単一のPHPファイルでデータベースを簡単に管理する方法
公開: 2021-01-18MySQLデータベースの管理は、プロのWordPress開発者であるための基本的な要件の1つです。 管理者はそのタスクを大幅に簡素化します。
すべてのWordPressサイトが機能するにはデータベースが必要です。ここに、WordPressがサイトの重要なデータをすべて保存します。 phpMyAdminは長年にわたって主要なMySQL/MariaDBデータベース管理ツールでしたが、Adminerは優れた代替手段です。 多数の便利な機能とより美しいUIがすべて、サーバーにすばやくデプロイできる単一の軽量PHPファイル内にロードされています。
この投稿では、Adminer、phpMyAdminに比べてAdminerが提供する多くの利点、およびデータベースの管理にAdminerを使用する方法について学習します。 また、DevKinstaがAdminerを使用して、ローカル開発環境でWordPressデータベース管理を簡素化する方法についても説明します。
仕事に取り掛かりましょう!
管理者とは何ですか?
Adminer(以前のphpMinAdmin)は、PHPベースの無料のオープンソースデータベース管理ツールです。 サーバーにデプロイするのは非常に簡単です。 これを使用するには、単一のPHPファイルをアップロードし、ブラウザーをそのファイルに向けてログインするだけです。

MySQLおよびMariaDBデータベースの管理のみをサポートするphpMyAdminとは異なり、Adminerは、 PostgreSQL 、 SQLite 、 MS SQL 、 Oracle 、 SimpleDB 、 Elasticsearch 、 MongoDB 、 Firebirdなどの他のデータベースの管理もサポートします。 43の言語でも利用できます。
Adminerは、使いやすいインターフェイス、多くのMySQL機能のサポートの向上、優れたパフォーマンス、およびセキュリティの強化を提供します。
今すぐAdminerをインストールする方法を見てみましょう。
Adminerの使用方法
ただし、インストールを開始する前に、Adminerをサーバーで動作させるための基本的な要件を次に示します。
- PHP 5、7、または8をインストールします
- データベースドライバー(MySQL、PostgreSQLなど)
それはほとんどそれです!
Adminerの最新バージョンを公式Webサイトからダウンロードします。 また、MySQLのみおよび英語のみのAdminerのフレーバーもそこにあります。 MySQLまたはMariaDBデータベース(WordPressサイトなど)を管理している場合は、これらの軽量のバリアントを入手できます。

または、ターミナルを使用している場合は、 curlコマンドを使用してディレクトリに直接ダウンロードできます。
curl -o https://github.com/vrana/adminer/releases/download/v4.7.8/adminer-4.7.8.php
Adminer4.7.8は最新の安定バージョンです。 リリースされたばかりのPHP8.0のサポートが追加されます。 新しいバージョンが利用可能な場合は、上記のコードのダウンロードURLで管理者のバージョン番号を変更できます。
ダウンロードしたら、この.phpファイルをサーバーのルートフォルダーなど、サーバー上の任意の場所に配置できます。 ただし、すべてのサードパーティツールを別のディレクトリ(ベンダー、アセットなど)に配置することをお勧めします。
これで、サーバーにAdminerがインストールされました。 そのプラグアンドプレイ設計は、Adminerがほぼすべてのサーバーで動作することを意味します。
管理者にアクセスする方法
アクセスするには、ブラウザからリンクにアクセスするだけです。
たとえば、Webサイトのルートディレクトリに配置した場合は、 https://your-website.com/adminer-4.7.8.phpにアクセスしてアクセスできます。 ドメイン名を設定していない場合は、サーバーのIPアドレスまたはローカルホスト環境からアクセスすることもできます。

ここから、サーバーにインストールされている任意のデータベースにログインできます。 データベースフィールドを空白のままにすることもできます。 管理者は、次の画面にすべてのデータベースのリストを表示します。
永続的なログインオプションにチェックマークを付けると、ログインの詳細が保存されるため、後でこのセッションに簡単にアクセスできます。

管理者機能
Adminerには、データベース管理をより簡単にするための多くの機能が含まれています。 それらを深く掘り下げる時が来ました。
データベースサーバーに接続する
前に説明したように、Adminerがサポートする任意のデータベースサーバーに接続できます。 MySQLデータベースサーバーの場合、デフォルトのユーザー名はrootで、デフォルトのパスワードは空の文字列です。 ここから管理する既存のデータベースを選択することもできます。

新しいデータベースを作成する
[データベースの作成]リンクをクリックして、新しいMySQLデータベースを作成できます。 データベース名を入力し、その照合タイプを選択します。 WordPressデータベースの場合、推奨される照合タイプはutf8mb4_unicode_ciです。

データベースを作成した後、データベースの名前、スキーマ、ユーザー、テーブルなど、データベースのさまざまな側面を変更できます。

これで、新しいMySQLデータベースが作成されました。 次のページには、テーブルや列などを追加するためのその他のオプションが表示されます。

データベース名と照合タイプの変更
[データベースの変更]リンクをクリックすると、名前と照合タイプを変更できます。 データベースを作成してタイプミスをしたばかりの場合、これは非常に便利です。

たとえば、データベースの照合タイプをutf8_unicode_ciからutf8mb4_unicode_ciに変更しました。

注:データベースがすでにいずれかのアプリケーションで使用されている場合は、ここで行った変更がアプリケーションのコードにも反映されていることを確認してください。
データベーススキーマを調べる
データベーススキーマは、すべてのデータベース要素がどのように関連しているかを定義する論理構成を指します。 MySQLでは、スキーマはデータベースと同義です。 だから、彼らは同じことを指します。
ただし、PostgreSQLやOracleなどの他のデータベースでは、スキーマはテーブルのコレクションを参照します。 これはデータベースの一部にすぎません。
WordPressはデータベースにMySQLを使用しています。 したがって、そのスキーマは基本的に、列を持つテーブルです。 Adminerを使用すると、スキーマボックス内を移動して、必要に応じてそれらを操作することもできます。

これは、典型的なWordPressデータベース構造の詳細を学ぶのに最適な方法です。
テーブルのデータと構造を検査する
いずれかのテーブルをクリックすると、その詳細が表示されます。 デフォルトでは、Adminerはテーブルの[構造の表示]タブに移動します。 ここでは、名前、タイプ、インデックスなど、テーブルの列に関する情報を確認できます。

データベーステーブルに外部キーまたはトリガーが関連付けられている場合は、それらもここの一番下のセクションに一覧表示されます。
上記の例は、wp_optionsテーブルの詳細を示しています。 WordPressがすべての重要な設定を保存する場所です。 次に、 [データの選択]タブに移動して、このテーブル内に格納されているすべての値を確認できます。

ご覧のとおり、ここでのユーザーインターフェイスは、phpMyAdminにあるユーザーインターフェイスよりもはるかに簡単です。
テーブルと列の設定を変更する
上部の[テーブルの変更]リンクをクリックして、テーブルと列の設定を変更します。

テーブルの場合、名前、エンジン、および照合タイプを変更できます。 下部には、自動インクリメントを開始するためのテーブルのデフォルト値を設定するためのオプション、およびデフォルト値とコメントを使用して列を設定できるかどうかも表示されます。
列については、名前、タイプ、長さ、および照合タイプを変更できます。
+ボタンとxボタンをクリックして、列を追加または削除することもできます。 ドロップボタンを押すとデータベーステーブルが完全に削除されるため、注意して使用してください。
変更を加えたら、[保存]ボタンを押すのを忘れないでください。
新しいレコードを挿入し、既存のレコードを更新します
[新しいアイテム]リンクをクリックして、[挿入:<table_name> ]タブに移動します。

ここで、テーブルに新しい行を追加できます。 管理者は、列名とそのタイプを一覧表示して、すばやく入力できるようにします。 入力した値に対してハッシュ関数を実行して、それらを自動的に暗号化することもできます。 パスワードのようにデータが機密である場合、これは非常に役立ちます。 たとえば、WordPressは、MD5アルゴリズムを使用してパスワードをデータベースに保存します。
既存のレコードの編集は簡単です。 たとえば、サイトの説明を変更する場合は、 wp_optionsテーブルのblogdescriptionオプションの値を編集できます。

次に、 option_valueフィールドに新しいブログの説明を入力し、[保存]ボタンをクリックして変更を有効にします。

すべてのテーブルのデータを検索
Adminerを使用すると、データベースのすべてのテーブルで任意のデータを一度に検索できます。 この値を保持する可能性が最も高いテーブルが表示されます。

homeという用語を検索したとき、Adminerは最も可能性の高い候補としてwp_optionsテーブルを表示しました。 それをクリックすると、Adminerがデータベースで見つけた正確な列と行が表示されました。
検索結果の下にリストされているテーブルをクリックすると、その詳細が表示されます。 ここから、このテーブル内でより詳細な検索を実行できます。

例として、ホームオプション名の値を編集し、サイトのホームページのURLを変更できます。
テーブルの切り捨て、削除、移動、およびコピー
Adminerを使用すると、データベースのダッシュボードから直接テーブルに対して多くの操作を実行できます。

テーブルを選択して下のボタンをクリックすると、テーブルに対して多くのSQLクエリを実行できます。
たとえば、サイト上のすべてのコメントを削除する場合は、 wp_commentsテーブルを選択して、[切り捨て]ボタンをクリックします。 テーブル内のすべての行が空になりますが、既存の列構造は保持されます。 ドロップボタンを押すと、テーブルが完全に削除されます。
ここから、テーブルを別のデータベースに移動またはコピーすることもできます。 上書きオプションを使用すると、投稿やコメントなどのサイトデータをあるサイトから別のサイトにすばやく転送できます。
テーブル、ビュー、ルーチン、およびイベントを作成する
Adminerを使用して、新しいテーブル、ビュー、ルーチン、およびイベントを作成できます。

テーブルの作成機能を使用すると、列やネストされた値を含む、テーブルの完全なスキーマを定義できます。
パワーユーザーは、Adminerの他の高度な機能を使用して、MySQLのビュー、プロシージャ、関数、およびイベントを定義できます。

データベースのインポートまたはエクスポート
Adminerを使用すると、MySQLデータベースを簡単にインポートできます。 バックアップした.sqlまたはをアップロードするだけです。 sql.gz (推奨)ファイルを実行します。 この方法は、MySQLデータベースを復元する簡単な方法です。

同様に、既存のデータベースのバックアップもAdminerを使用すると非常に簡単です。 [エクスポート]リンクをクリックしてから、出力タイプ、形式、その他のデータベース設定などのエクスポートオプションを選択します。 エクスポートするテーブルを選択することもできます。

デフォルトでは、Adminerは、 SQL 、 CSV 、CSVを使用して、 Open 、 Save 、またはGZIP出力でデータベースをエクスポートすることをサポートしています。 、またはTSV形式。 ただし、Adminerプラグインを使用すると、この機能を簡単に拡張できます。 これらについては、この記事の後半で説明します。
SQLクエリを実行する
SQLクエリを実行するために、Adminerで不格好なユーザーインターフェイスを処理する必要はありません。 SQLコマンド画面にアクセスして、必要なクエリを実行するだけです。

構文の強調表示に注意してください。 管理者は、強調表示されたSQLキーワードを公式ドキュメントにリンクすることもできます。
クエリを実行する前に、行を制限し、エラーが発生したときに実行を停止するように設定し、エラーの出力のみを表示することができます。
特権の表示と作成(ユーザー)
Adminerを使用して、データベースのカスタム権限を持つ新しいユーザーを作成できます。 ほとんどの場合は不要ですが、新しいユーザーを作成する場合は、すばやく作成するオプションがあります。
![Adminerの[権限]メニューリンク](/uploads/article/33056/F7DayW91uJNyrqii.png)

広範なカスタマイズオプション
デフォルトのAdminerクラスを使用して、Adminerのデフォルト機能をカスタムコードで拡張または上書きできます。 これを実現するには、Adminerクラスのカスタム値を返すadminer_object関数を定義する必要があります。
すぐにAdminerを使用したいですか? DevKinstaは、ローカル開発ツールの無料スイートでAdminerを使用しています。 DevKinstaを使用すると、WordPressサイトを数分で構築、テスト、および展開できます。 今すぐDevKinstaをお試しください!
たとえば、ページのタイトルと見出しに表示される名前をカスタマイズする場合は、次のコードを使用して行うことができます。
<?php function adminer_object() { class AdminerExtender extends Adminer {function name() { // your custom name for title & heading return 'Adminer for Kinsta'; } } return new AdminerExtender; } include './adminer-4.7.8.php';
これで、ヘッダーセクションに設定したカスタム名(「Kinstaの管理者」)が表示されます。

Adminerの拡張機能を使用して実行できるクールなことがたくさんあります。 Adminerの拡張機能について詳しくは、APIリファレンスページをご覧ください。
管理者プラグイン
Adminerプラグインはすぐに使用できる拡張機能であり、Adminerのデフォルト機能を簡単に拡張するために使用できます。
たとえば、データベースをXML形式でエクスポートする場合は、Adminerdump-xmlプラグインをインストールできます。 同様に、データベースをZIP圧縮ファイルとしてエクスポートする場合は、dump-zip拡張機能をプラグインできます。

公式ウェブサイトには、最も人気のあるAdminerプラグインのいくつかがリストされています。 Adminerプラグインを設定して使用する方法についての情報もあります。
管理者のテーマ
Adminerの最も優れた機能の1つは、テーマ機能です。 公式サイトには、すぐに使用できる既製のデザインがいくつか掲載されています。

Adminerテーマを使用するには、テーマのadminer.cssファイルをadminer.phpと同じディレクトリに配置する必要があります。
とても簡単です。

上記の例は、管理者のWebサイトにリストされているHydraテーマです。 これは、管理者向けのマテリアルデザインベースのダークテーマです。

他のいくつかの優れた管理者テーマの例は、ペマトンによる管理者ブートストラップのようなデザインと管理者テーマです。 上記のテーマのいずれかをテンプレートとして使用し、CSSファイルを変更して好みに合わせてカスタマイズできます。
管理者とphpMyAdmin
Adminerの機能の多くを調べたので、次にAdminerを業界のリーダーであるphpMyAdminと比較してみましょう。 これらがさまざまな面でどのように積み重なるかについての簡単なレビューは次のとおりです。
AdminerとphpMyAdmin:機能の比較
phpMyAdminはMySQLデータベースのみをサポートしますが、Adminerは他の多くのデータベースをサポートします。 Adminerは、MySQLのみのフレーバーでも利用できます。
phpMyAdminでのテーブルの編集と作成は、Adminerと比較して面倒です。 データをまとめて選択し、一度に編集することは、Adminerにとって快適です。 この領域にはphpMyAdminがありません。
また、データベースの編集に焦点を当てたAdminerのバリアントであるAdminerEditorも見ることができます。 一度に1つのデータベースでのみ機能します。機能させるには、別のデータベースに接続する必要があります。
phpMyAdminが優れている分野がいくつかあります。 たとえば、Adminerよりもはるかに多くの言語とエクスポート形式をサポートしています。 その大規模なユーザーベースは、問題に遭遇した場合に喜んであなたを助けてくれる活発なコミュニティがあることを保証します。
管理者とphpMyAdmin:セキュリティ
Adminerのチームによると、「Adminerの開発ではセキュリティが最優先事項です。 たとえば、Adminerは、バックエンドでパスワードを設定せずにデータベースへのアクセスをブロックします。 また、ブルートフォース攻撃やSQLインジェクション攻撃から保護するための接続試行をレート制限します。
管理者のプラグアンドプレイ設計は、不要になったときにサーバーからすばやく削除できることも意味します。 将来再び使用したい場合は、すぐにアップロードして戻すことができます。 phpMyAdminで同じことを行うことはできません。
Adminerのlogin-sslプラグインを使用すると、SSLを使用してMySQLデータベースサーバーに接続できます。 管理者のダッシュボードには、新しいバージョンが利用可能かどうかも示されるため、常に最新バージョンを使用していることを確認できます。
管理者とphpMyAdmin:パフォーマンス
Juraj Hajduchによる独立したテストによると、AdminerはphpMyAdminよりも平均28%高速です。 これらの結果は2009年に公開されましたが、Adminerはまだ初期段階でしたが、これは(まだ)利用可能な唯一の独立したパフォーマンステストです。
Adminerは1つの軽量ファイルのみで構成されているため、リソースが最も制限されているサーバーにもデプロイできます。
管理者とphpMyAdmin:ユーザーエクスペリエンス
Adminerの使用は、phpMyAdminとは異なり、最初から簡単です。 構成や設定に手を出す必要はありません。 それはうまくいきます。
Adminerは、より優れた、より使いやすいユーザーインターフェイスも提供します。 表、列、およびそれらの値のカスタマイズは、Adminerを使用すると驚くほど簡単です。 つまり、データベースのインポートやバックアップの作成です。
さらに、Adminerプラグインとテーマを使用すると、要件に合わせて機能とインターフェイスをカスタマイズできます。 これにより、Adminerはユーザーエクスペリエンスの観点から明確な勝者になります。
AdminerとphpMyAdmin:ファイルサイズ
Adminerはコンパクトなデータベース管理ツールです。 phpMyAdminよりも多くのデータベースタイプをサポートしていますが、phpMyAdminの少なくとも28分の1です。
Adminerの最新のフル機能バージョン(v4.7.8)はわずか478 KBで提供されますが、phpMyAdminの最新バージョン(v5.0.4)は13.7 MBです(さらに、起動するための圧縮ファイルです)。 AdminerのMySQLのみのバージョン( 354 KB )を考慮すると、ファイルサイズの違いはさらに大きくなります。
WordPressでAdminerを使用する方法
WordPressでAdminerを使用する特別な方法はありません。 これは、すべてのMySQLデータベースで同じように機能します。 PHPファイルをダウンロードし、サーバー上の任意の場所に配置して、ブラウザーからアクセスします。 Adminerにログインすると、WordPressサイトのデータベースを探索できます。
使用が終了したら、サーバーからAdminerファイルを削除することをお勧めします。 サーバー上に長期間放置すると、データベースが脆弱性にさらされる可能性があります。
WordPressダッシュボードから直接Adminerにアクセスできるari-adminerという名前のWordPressプラグインがありました。 ただし、重大なセキュリティ問題のため、閉鎖されており、ほぼ2年間ダウンロードできなくなりました。
WordPressでAdminerを使用する次善の方法は、DevKinstaを使用することです。
DevKinstaと管理者:簡単なWordPressデータベース管理
Kinstaのローカル開発ツールの無料スイートであるDevKinstaは、バックグラウンドでAdminerを使用してデータベースマネージャーを強化します。

DevKinstaダッシュボードの[データベースマネージャー]ボタンをクリックして、Adminerにアクセスします。

DevKinstaのデータベースマネージャーは、この投稿で前述したすべてのAdminer機能をサポートしています。 これを使用して、さまざまなデータベースの切り替え、テーブルの表示と編集、データベース値の操作、データベースのインポートとエクスポート、SQLクエリの実行などを行うことができます。
DevKinstaを使用してローカルに複数のサイトを設定している場合は、管理者のダッシュボードからデータベースを切り替えることができます。 左上隅のドロップダウンメニューから、使用するデータベースを選択するだけです。
データベースマネージャーの詳細については、DevKinstaのドキュメントをご覧ください。
概要
Adminerは、phpMyAdminの最良の代替手段の1つです。 フットプリントが軽いだけでなく、作業が非常に簡単です。 それはゆっくりですが絶え間ない開発の下にあります。 管理者の最新バージョンでは、PHP 8環境のサポートが追加され、将来にわたって利用できるようになりました。
Adminerを試してみたい場合は、DevKinstaを使用してローカルのWordPressサイトをほぼ瞬時に作成し、Adminerを使用してデータベースの探索を開始できます。
今度はあなたの番です。Adminerでのあなたの経験は何ですか? AdminerまたはDevKinstaを使用したデータベースの管理について質問がありますか? もしそうなら、コメントセクションでそれらを共有してください。