MySQL データベースを一覧表示する方法 (ステップバイステップのコード チュートリアル)

公開: 2022-10-22

MySQL は、今日最も広く使用されているリレーショナル データベース管理システム (RDBMS) の 1 つです。 これは、主に構造化照会言語 (SQL) を使用して、スケーラブルなデータベースを作成および管理できる堅牢なデータベース プラットフォームです。

MySQL サーバーは、データベースが存在する環境であり、データベースにアクセスする場所です。 サーバー管理者は、サーバー上にあるデータベースのリスト、特定のデータベースのテーブルの表示、ユーザーの役割と権限の表示、制約へのアクセスなど、この環境に関する詳細を取得する必要があることがよくあります。

この記事では、コマンド プロンプトを介して MySQL データベースを一覧表示する方法の詳細について説明します。

MySQL データベースを一覧表示するための前提条件

開始するには、ローカル マシンで MySQL サーバーが実行されている必要があります。 MySQL がない場合は、いくつかの方法でインストールできます。

  • WAMPServer、XAMPP、MAMP、または MySQL を含むその他のソフトウェア配布スタックをインストールします。
  • MySQL インストーラーを公式 Web サイトから直接ダウンロードして実行し、セットアップ プロセスを経て、MySQL サーバーとその他のツールを構成およびインストールします。

コマンド ラインを使用して MySQL コマンドを便利に実行するには、MySQL 実行可能ファイルのパスをシステムの環境に追加する必要があります。 オプション 2 を使用して MySQL をインストールした場合、この手順は不要なので、次のセクションをスキップしてかまいません。

システムの変数環境に MySQL パスを追加する

このセクションでは、Windows コンピューターで XAMPP または WAMP を実行している場合に、MySQL 実行可能パスをシステムの変数環境に追加する方法について説明します。

まず、Windows ファイル エクスプローラーを起動し、 This PCに移動します。 WAMP または XAMPP パッケージ ( C: ) をインストールしたドライブをクリックします。

XAMPP を実行している場合は、 xampp > mysql > binに移動し、フル パスをbinフォルダーにコピーします。 WAMP の場合は、 {your-wamp-version} > bin > mysql > {your-mysql-version} > binからフル パスに移動します。

MySQL CLI にアクセスするためのフルパス。
bin フォルダーへのフル パス。

[スタート] メニューをクリックし、「パス」を検索します。 [システム環境変数を編集する] をクリックします。

次に、[起動と回復] の下の [環境変数] をクリックし、PATH 変数を選択して [編集] をクリックします。

次に、[新規] をクリックして、MySQL 実行可能ファイル (前にコピーしたもの) へのフル パスを貼り付けます。

環境変数の編集。
環境変数の編集。

次に、[ OK ] をクリックして変更を保存します。

パスが追加されたので、ターミナルで MySQL コマンドを実行できます。

MySQL にログイン

MySQL データベースを一覧表示するには、ユーザーがすべてのデータベースへのアクセスを許可されているか、すべてのユーザーにアクセスを許可するグローバルなSHOW DATABASES権限を設定する必要があります。

コマンド プロンプトからログインする前に、MySQL サーバーが実行されていることを確認します。

 mysql -u -p

注: 交換あなたのユーザー名で。 MySQL のデフォルトのユーザー名はrootで、パスワードは空です (デフォルトではパスワードはありません)。

ターミナルから MySQL にログインします。
MySQL にログインします。

MySQL サーバー内のデータベースを表示

ログインしたので、 SHOW DATABASESコマンドを実行して、サーバーに存在する MySQL データベースを一覧表示できます。

 SHOW DATABASES;

代わりに、ストレージに存在するすべてのデータベースを取得します。

MySQL データベースを表示しています。
ストレージにあるデータベースのリスト。

返された 6 つのデータベースのうち、 information_schemaperformance_schemaは、MySQL のインストール時に自動的に生成されるデフォルトのデータベースです。

information_schemaデータベースは、MySQL サーバーに格納されているデータベースおよびその他のオブジェクト (ビュー、ユーザー権限、テーブル、制約など) に関連するすべての情報を格納する変更不可能なデータベースです。

データベース出力の結果のフィルタリング

以前は、MySQL サーバー上のすべてのデータベースをSHOW DATABASESで返していましたが、主にサーバー上に多くのデータベースがある場合、データベース出力をフィルター処理する必要があることがよくありました。

LIKE句は、指定されたパターンに基づいてSHOW DATABASEの結果をフィルタリングします。 一般的な構文は次のとおりです。

 SHOW DATABASES LIKE '';

一致させたいパターンを表す文字列でなければなりません。 文字列は、1 つ以上の文字を表すパーセント記号%で終わる必要があります。

たとえば、名前が文字wで始まるデータベースのみを表示する場合は、次のように実行します。

SHOW DATABASES LIKE 'w%';

フィルタリングされた結果は次のとおりです。

フィルタ リスト mysql データベース
「w%」を使用した場合のフィルタリングされたデータベース レスポンス。

情報スキーマを使用してテーブル メタデータをクエリする

前に、 information_schemaデータベースが MySQL サーバー環境のデータベース、テーブル、およびその他のオブジェクトに関連するすべての情報を格納する方法を見てきました。

information_schemaデータベースは、schema テーブルを使用して、すべてのデータベースに関する情報を格納します。 データベース フィルタリングでは、複雑な検索を実行して、特定のデータベースのスキーマ テーブルをクエリできます。

たとえば、名前が「samp」または「word」で始まるデータベースが必要な場合は、他のいくつかの句を組み合わせて複雑なクエリを作成できます。

 SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE 'samp%' OR schema_name LIKE 'word%';

結果は次のとおりです。

MySQL の使用
複雑なクエリの結果。

さらに、すべてのテーブルに関する情報を含むinformation_schemaデータベースからのtablesテーブルがあります。 同様に、クエリを実行して、指定したパターンに一致するテーブルのみを取得できます。

たとえば、次のクエリは、WordPress テーブル (名前が「wp_」で始まるテーブルのみ) のスキーマ情報を返します。

 SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

結果は次のとおりです。

ダウンタイムや WordPress の問題に悩まされていませんか? Kinstaは、時間を節約するために設計されたホスティングソリューションです! 私たちの機能をチェックしてください

wp_tables MySQL データベース テーブルの一覧表示。
WordPressテーブルのみのスキーマ情報の結果。

information_schemaにあるその他のテーブルには、 columnsconstraintstable_constraintscheck_constraints 、およびreferential_constraintsが含まれます。

一般的な問題とベスト プラクティス

SQL 実行時のエラーの最も一般的な原因の 1 つは、ステートメントの末尾にセミコロンを使用していないことです。

もう 1 つは、無効な SQL 構文を使用しているか、テーブル名または列名のスペルが正しくありません。 これを回避するには、テーブルまたは列の名前をクロスチェックして、スペルが正しいことを確認してください。 構文も必ずクロスチェックしてください。

留意すべきその他のベスト プラクティスを次に示します。

SQL キーワードに大文字を使用する

SQL コードを記述するときは、常に SQL キーワードには大文字を使用し、テーブル名と列名には小文字を使用してください。 これにより、コードが読みやすくなり、エラーが発生しにくくなります。

したがって、これの代わりに:

 select * from information_schema.tables where table_name like 'wp_%';

これを行う:

 SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

SELECT *

SQL クエリでSELECT *を使用しないでください。 何が返されるかを常に知ることができるとは限らないため、リクエストは不明確です。 代わりに、テーブルから選択する列を指定します。

したがって、これの代わりに:

 SELECT * EXCEPT(phone) FROM users.profile

これを行う:

 SELECT name, dob, address, country, address, FROM user.profile

コードのインデント

最後に、エラーを見つけやすくするもう 1 つのヒントは、コードをインデントすることです。 より読みやすくなります!

データベース管理者

または、データベース マネージャーを使用して、SQL を記述せずにデータベースを管理することもできます。 これにより、ユーザーは SQL クエリを記述する必要なく、データベース管理機能にアクセスできます。 このソフトウェアは MySQL サーバーに接続し、データベース機能を公開するためのユーザー インターフェイスを提供します。 接続すると、UI にサーバー上のすべてのデータベースが表示されます。 ルック アンド フィールは管理ツールによって異なりますが、プロセスは似ています。

DevKinsta のデータベース マネージャー。
DevKinsta のデータベース マネージャー。

DevKinsta からアクセスできる phpMyAdmin や Adminer など、いくつかのツールから選択できます。 DevKinsta のデフォルトの管理ツールは Adminer で、軽量で簡単、高速ですが、phpMyAdmin には簡単にアクセスできます。

概要

サーバー管理者は、MySQL サーバー上のデータベースに関する詳細を効率的かつ正確に取得できる必要があります。 サーバー上にあるデータベースを確認する機能、特定のテーブルとその中の情報を表示する機能、およびユーザーの役割と特権に関する情報にアクセスする機能はすべて重要なタスクです。 幸いなことに、コマンド ラインから SQL を使用すると、これを簡単に行うことができます。

データベース管理がテーブルのクエリを超えて拡大する必要がある場合、Kinsta が役立ちます。 スケーラブルなデータベース ホスティング オプションの詳細を今すぐご覧ください。