「このサーバーにはどんなデータベースがあるの?」
「データベースの名前を忘れてしまった…一覧で確認したい」
そんなときに役立つのが、データベース一覧を表示するコマンドです。
この記事では、MySQL、PostgreSQL、SQLiteでデータベースの一覧を確認する方法を、初心者の方にもわかりやすく説明します。
データベース一覧確認の必要性

なぜ一覧確認が大切?
複数のプロジェクト管理 一つのサーバーで複数のウェブサイトやアプリを運用している場合
作業前の確認 データベースを操作する前に、正しい名前を確認したい
整理・掃除 不要になったデータベースを見つけて削除したい
権限の確認 自分がアクセスできるデータベースを知りたい
データベース管理システムとは
MySQL 世界で最も使われているオープンソースデータベース
PostgreSQL 高機能で信頼性の高いオープンソースデータベース
SQLite ファイルベースの軽量データベース
MySQLでデータベース一覧を確認
基本的な確認方法
説明 MySQLでは、とてもシンプルなコマンドでデータベース一覧を表示できます。
コマンド
SHOW DATABASES;
実行結果の例
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| myapp_db |
| blog_db |
+--------------------+
6 rows in set (0.00 sec)
解説
information_schema
:データベースの情報を管理mysql
:MySQLシステム用performance_schema
:性能監視用sys
:システム管理用myapp_db
:ユーザーが作成したデータベースblog_db
:ユーザーが作成したデータベース
MySQLに接続する方法
コマンドライン接続
mysql -u ユーザー名 -p
実行例
mysql -u root -p
実行結果
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.33 MySQL Community Server
Type 'help;' or '\h' for help. Type '\c' to clear the input.
mysql>
接続後にデータベース一覧を表示
mysql> SHOW DATABASES;
特定の条件でデータベースを絞り込み
パターンマッチング
SHOW DATABASES LIKE 'app%';
実行結果
+------------------+
| Database (app%) |
+------------------+
| app_development |
| app_test |
| app_production |
+------------------+
解説
%
は任意の文字列を表すapp
で始まるデータベースのみ表示
PostgreSQLでデータベース一覧を確認

psqlコマンドを使う方法
説明 PostgreSQLの専用コマンドラインツール「psql」を使った確認方法です。
コマンド
\l
または
\list
実行結果の例
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
myapp | appuser | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
blog | bloguser | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(5 rows)
PostgreSQLに接続する方法
基本的な接続
psql -U ユーザー名 -d データベース名
ローカル接続の例
psql -U postgres
リモート接続の例
psql -h localhost -U postgres -d myapp
接続後のプロンプト
postgres=#
SQL文を使う方法
説明 標準的なSQL文でも一覧を取得できます。
コマンド
SELECT datname FROM pg_database;
実行結果
datname
-----------
postgres
template1
template0
myapp
blog
(5 rows)
詳細情報を含む場合
SELECT datname, datowner, encoding FROM pg_database;
psqlの便利なコマンド
データベース情報の詳細表示
\l+
現在のデータベース接続情報
\conninfo
実行結果例
You are connected to database "postgres" as user "postgres" via socket in "/tmp" at port "5432".
SQLiteでデータベース情報を確認
SQLiteの特徴
説明 SQLiteはファイルベースのデータベースなので、「複数のデータベース」という概念が少し異なります。
SQLiteの特徴
- 1つのファイル = 1つのデータベース
- 複数のデータベースファイルを同時に開くことも可能
- サーバーが不要な軽量データベース
SQLiteに接続する方法
基本的な接続
sqlite3 データベース名.db
実行例
sqlite3 myapp.db
実行結果
SQLite version 3.39.5 2022-10-14 20:58:05
Enter ".help" for usage hints.
sqlite>
アタッチされたデータベースの確認
コマンド
PRAGMA database_list;
実行結果の例
seq name file
--- --------------- ----------------------------------------
0 main /path/to/myapp.db
1 temp
解説
seq
:データベースの番号name
:データベースの別名file
:実際のファイルパス
複数のデータベースを同時に使用
他のデータベースをアタッチ
ATTACH DATABASE 'blog.db' AS blog_db;
アタッチ後の確認
PRAGMA database_list;
実行結果
seq name file
--- --------------- ----------------------------------------
0 main /path/to/myapp.db
1 temp
2 blog_db /path/to/blog.db
SQLiteのデータベース内のテーブル一覧
テーブル一覧の表示
.tables
または
SELECT name FROM sqlite_master WHERE type='table';
データベース管理システム別の比較

各システムの一覧表示方法まとめ
データベース | コマンド | 備考 |
---|---|---|
MySQL | SHOW DATABASES; | シンプルで覚えやすい |
PostgreSQL | \l または SELECT datname FROM pg_database; | psqlコマンドが便利 |
SQLite | PRAGMA database_list; | ファイルベース |
接続方法の比較
データベース | 接続コマンド | 例 |
---|---|---|
MySQL | mysql -u ユーザー名 -p | mysql -u root -p |
PostgreSQL | psql -U ユーザー名 | psql -U postgres |
SQLite | sqlite3 ファイル名 | sqlite3 myapp.db |
実際に使ってみよう
MySQL練習例
手順1:MySQLに接続
mysql -u root -p
手順2:データベース一覧を表示
SHOW DATABASES;
手順3:新しいデータベースを作成して確認
CREATE DATABASE test_db;
SHOW DATABASES;
PostgreSQL練習例
手順1:PostgreSQLに接続
psql -U postgres
手順2:データベース一覧を表示
\l
手順3:SQL文でも確認
SELECT datname FROM pg_database;
SQLite練習例
手順1:SQLiteファイルを作成・接続
sqlite3 test.db
手順2:データベース情報を確認
PRAGMA database_list;
手順3:別のデータベースをアタッチして確認
ATTACH DATABASE 'another.db' AS second_db;
PRAGMA database_list;
注意点とトラブルシューティング

権限に関する注意
表示されないデータベースがある場合
- ユーザー権限が不足している可能性
- 管理者ユーザーで接続を試す
MySQL権限確認
SHOW GRANTS;
PostgreSQL権限確認
\du
接続できない場合の対処
MySQLの場合
# サービス状態確認
sudo systemctl status mysql
# サービス開始
sudo systemctl start mysql
PostgreSQLの場合
# サービス状態確認
sudo systemctl status postgresql
# サービス開始
sudo systemctl start postgresql
よくあるエラーと対処法
「Access denied」エラー
- パスワードが間違っている
- ユーザー名が間違っている
- ホスト接続権限がない
「Connection refused」エラー
- データベースサーバーが起動していない
- ポート番号が間違っている
- ファイアウォールでブロックされている
よくある質問と答え
Q. どのデータベースシステムを使えばいいですか?
A. 用途によります。WebアプリならMySQL、高機能が必要ならPostgreSQL、軽量アプリならSQLiteがおすすめです。
Q. システムデータベース(mysql、information_schemaなど)は削除していいですか?
A. 絶対に削除しないでください。システムが動かなくなります。
Q. データベース一覧を取得するときに、パスワードを入力せずに済む方法はありますか?
A. 設定ファイルにパスワードを記載する方法がありますが、セキュリティ上推奨しません。
Q. リモートサーバーのデータベース一覧を確認できますか?
A. はい、適切な接続情報(ホスト名、ポート、ユーザー名、パスワード)があれば可能です。
まとめ:データベース一覧確認で効率的な管理を
データベース一覧の確認方法を覚えることで、データベース管理が格段に楽になります。
今日覚えたこと
- MySQL:
SHOW DATABASES;
で一覧表示 - PostgreSQL:
\l
またはSELECT datname FROM pg_database;
- SQLite:
PRAGMA database_list;
でアタッチ済み一覧 - 接続方法:各システムごとに異なるコマンド
まずは使っているデータベースシステムの方法から始めましょう。
慣れてきたら、他のシステムの方法も覚えておくと、いろいろな環境で役立ちます。
コメント