ServBay データベースファイル管理と移行ガイド
ServBayは、強力なローカルWeb開発環境として、複数の一般的なデータベース管理システムを統合し、そのデータファイルを標準化して管理しています。ServBayのデフォルトにおけるデータベースファイル配置構造を理解することは、開発者がデータのバックアップ、リストア、移行を行う上で非常に重要です。
本ガイドでは、ServBayのデフォルトにおけるデータベースファイルの保存構造を詳しく解説し、標準コマンドラインツールを使用したデータベースファイルの管理方法および異なる環境間での移行手順を紹介します。
TIP
ServBayはデータベースのバックアップおよびリストア機能を提供しています。MySQL、MariaDB、PostgreSQLデータベースを自動または手動でバックアップできます。詳しくはバックアップとリストアをご参照ください。
ServBayにおけるデフォルトのデータベースファイル保存構造
管理のしやすさやデータの分離性を高めるため、ServBayはすべてのデータベースファイルを /Applications/ServBay/db
ディレクトリに集約しています。このディレクトリはデータベースの種類ごとに分割され、さらにその中でメジャーバージョン(major version)ごとに管理されます。
以下は /Applications/ServBay/db
ディレクトリの典型的な構造例です:
/Applications/ServBay/db
├── mysql
│ ├── 8.0
│ └── 8.1
├── mariadb
│ ├── 10.10
│ ├── 10.11
│ ├── 10.5
│ ├── 10.6
│ ├── 10.7
│ ├── 10.8
│ ├── 10.9
│ ├── 11.0
│ ├── 11.1
│ ├── 11.2
│ └── 11.3
├── postgresql
│ ├── 10
│ ├── 11
│ ├── 12
│ ├── 13
│ ├── 14
│ ├── 15
│ └── 16
└── redis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ディレクトリ構成の説明
/Applications/ServBay/db
: ServBayが全データベースファイルを格納するメインディレクトリです。mysql
: MySQLデータベースのデータファイル。サブディレクトリはメジャーバージョン(例:8.0
,8.1
)ごとに区切られています。mariadb
: MariaDBデータベースのデータファイル。同じくメジャーバージョン(例:10.11
,11.3
)で管理。postgresql
: PostgreSQLデータベースのデータファイル。メジャーバージョン(例:15
,16
)ごとに整理されています。redis
: Redisの永続化ファイル(通常はdump.rdb
)を保存します。
この構成により、同じデータベースの異なるメジャーバージョンをServBay上で同時にインストール、起動できます。それぞれのデータファイルは完全に分離され、互いに干渉しません。
データベースファイルの管理
ローカル開発作業中は、データベースのバックアップ、リストア、移行を頻繁に行います。以下では各データベース標準のコマンドラインツールを用いた作業手順を紹介します。これらの操作は、ServBay付属の端末環境または環境変数が正しく設定された状況下で行い、関連するクライアントやツールに直接アクセス可能にしておきましょう。
データベースのバックアップ
定期的なバックアップはデータ損失防止の要です。ここではServBay各データベース種別ごとのバックアップ例を示します。
MySQLのバックアップ
mysqldump
ツールを使用するのがMySQLの標準的なバックアップ方法です。
bash
# ServBayが提供する端末環境を使うか、PATH環境変数にServBayのbinディレクトリを含めてください
# 例: export PATH="/Applications/ServBay/bin:$PATH"
mysqldump -u your_username -p your_database > /Applications/ServBay/backup/your_database.sql
1
2
3
4
2
3
4
your_username
: データベースユーザー名に置き換えてください。your_database
: バックアップしたいデータベース名に変更します。/Applications/ServBay/backup/your_database.sql
: バックアップファイルの保存場所・ファイル名に変更してください。バックアップファイルはServBayディレクトリ外、たとえばご自身のホームディレクトリなどに保存することを推奨します。
MariaDBのバックアップ
MariaDBも同じくmysqldump
ツールを使用します。
bash
# ServBayの端末環境を利用、もしくはPATH環境変数にServBayのbinディレクトリを含めてください
mysqldump -u your_username -p your_database > /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
- パラメータの説明は上記MySQLと同一です。
PostgreSQLのバックアップ
PostgreSQLのバックアップはpg_dump
ツールを使います。ServBayで構築した環境では通常Unixドメインソケット接続が用いられ、そのソケットファイルのパスは/Applications/ServBay/tmp
です。そのためコマンド実行時に-h /Applications/ServBay/tmp
の指定が必要です。
bash
# ServBay端末利用、またはPATHにServBayのbinディレクトリを追加
pg_dump -h /Applications/ServBay/tmp -U your_username -d your_database -F c -b -v -f /Applications/ServBay/backup/your_database.dump
1
2
3
2
3
-h /Applications/ServBay/tmp
: PostgreSQLサーバのソケットファイルパスを指定。-U your_username
: 利用するDBユーザー名に置き換え。-d your_database
: 対象DB名に置き換え。-F c
: 出力形式をカスタムアーカイブに指定(推奨)。-b
: BLOBなどの大きなオブジェクトも含める。-v
: 詳細出力。-f /Applications/ServBay/backup/your_database.dump
: 保存先・ファイル名に置き換え。
Redisのバックアップ
Redisのバックアップは主に永続化ファイルdump.rdb
のコピーとなります。
bash
# ServBay提供の端末環境を利用
# Redisサービスが起動中、または自動保存(BGSAVE)設定を確認
cp /Applications/ServBay/db/redis/dump.rdb /Applications/ServBay/backup/dump.rdb
1
2
3
4
2
3
4
/Applications/ServBay/db/redis/dump.rdb
: デフォルトの永続化ファイル/Applications/ServBay/backup/dump.rdb
: 保存先・ファイル名に変更
データベースのリストア(復元)
データ損失や過去の特定状態に戻したい場合、バックアップからリストアします。
MySQLのリストア
MySQLのクライアントツールmysql
を使ってバックアップファイルからリストアします。
bash
# ServBayの端末環境を利用
mysql -u your_username -p your_database < /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
your_username
: データベースユーザー名your_database
: リストア先データベース名(事前に作成しておく必要があります)/Applications/ServBay/backup/your_database.sql
: バックアップファイルのパス
MariaDBのリストア
MariaDBも同様にmysql
クライアントツールを使います。
bash
# ServBayの端末環境を利用
mysql -u your_username -p your_database < /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
- パラメータの説明は同上。
PostgreSQLのリストア
PostgreSQLのカスタムフォーマットバックアップをリストアする際はpg_restore
ツールを利用し、同じくソケットファイルパスの指定が必要です。
bash
# ServBayの端末環境を利用
pg_restore -h /Applications/ServBay/tmp -U your_username -d your_database -v /Applications/ServBay/backup/your_database.dump
1
2
3
2
3
-h /Applications/ServBay/tmp
: サーバのソケットファイル。-U your_username
: データベースユーザー名。-d your_database
: リストア先DB名(事前に作成要)。-v
: 詳細出力。/Applications/ServBay/backup/your_database.dump
: バックアップファイルパス。
Redisのリストア
Redisのリストアは、保存済みのdump.rdb
ファイルをRedisのデータディレクトリに復元する方法です。注意: この操作の前に必ずRedisサービスを停止してください。
bash
# ServBay端末で実行
# ServBayのRedisサービスを停止
# バックアップファイルをコピー
cp /Applications/ServBay/backup/dump.rdb /Applications/ServBay/db/redis/dump.rdb
# Redisサービスを再起動
1
2
3
4
5
2
3
4
5
/Applications/ServBay/backup/dump.rdb
: バックアップファイルパスに置き換え/Applications/ServBay/db/redis/dump.rdb
: デフォルトの永続化ファイルパス
データベースの移行
データベース移行とは、データベースを別の環境(別のServBay、リモートサーバ、ローカル開発環境など)へ移動することです。通常は、元の環境からエクスポートし、新たな環境でインポートします。
MySQLの移行
MySQLの移行は、日常開発でよくあるシナリオです。
元環境でデータベースをエクスポート:
bash# 元環境の端末で実行 mysqldump -u your_source_username -p your_database > your_database.sql
1
2your_source_username
: 元環境のDBユーザー名your_database
: 移行対象のデータベース名your_database.sql
: 出力ファイル名
エクスポートしたSQLファイルを移行先へ転送:
scp
や他のファイル転送ツールでyour_database.sql
を、移行先ServBayのアクセス可能なディレクトリ(例:/Applications/ServBay/backup/
)にコピーします。移行先ServBayでデータベースを作成:
bash# 移行先ServBay端末で実行 mysql -u your_target_username -p -e "CREATE DATABASE your_database;"
1
2your_target_username
: 移行先のDBユーザー名your_database
: 作成するDB名(元DB名と揃えるのが推奨)
移行先ServBayでデータベースをインポート:
bash# 移行先ServBay端末で実行 mysql -u your_target_username -p your_database < /path/to/your_database.sql
1
2/path/to/your_database.sql
: 実際のSQLファイルパスに書き換え
MariaDBの移行
MariaDBの移行もMySQLと同様です。
- 元環境からデータベースをエクスポート:bash
# 元環境端末で実行 mysqldump -u your_source_username -p your_database > your_database.sql
1
2 - SQLファイルを移行先に転送
- 移行先でデータベースを作成:bash
# 移行先ServBay端末で実行 mysql -u your_target_username -p -e "CREATE DATABASE your_database;"
1
2 - 移行先でインポート:bash
# 移行先ServBay端末で実行 mysql -u your_target_username -p your_database < /path/to/your_database.sql
1
2
PostgreSQLの移行
PostgreSQLの移行は、pg_dump
とpg_restore
を使って行います。ServBay環境ではソケットファイルのパス指定にも注意してください。
元環境でデータベースをエクスポート:
bash# 元環境の端末で実行 # 元がServBayなら pg_dump -h /Applications/ServBay/tmp -U your_source_username -d your_database -F c -b -v -f your_database.dump # 他のシステムの場合は適宜接続情報を調整
1
2
3
4your_source_username
: 元のDBユーザー名your_database
: 移行対象DB名your_database.dump
: 出力ファイル名
エクスポートしたバックアップを移行先へ転送:
scp
などでyour_database.dump
を移行先ServBayへ送ります。移行先ServBayでデータベースを作成:
bash# 移行先ServBay端末で実行 # デフォルトのpostgres DBに接続して新しいDBを作成 psql -h /Applications/ServBay/tmp -U your_target_username -d postgres -c "CREATE DATABASE your_database;"
1
2
3your_target_username
: 移行先のDBユーザーyour_database
: 作成するDB名
移行先でDBをリストア:
bash# 移行先ServBay端末で実行 pg_restore -h /Applications/ServBay/tmp -U your_target_username -d your_database -v /path/to/your_database.dump
1
2/path/to/your_database.dump
: 実際のバックアップファイルパス
Redisの移行
Redisの移行はdump.rdb
ファイルの直接コピーで行います。
元環境から
dump.rdb
ファイルを取得:bash# 元環境端末で実行 # Redisサービスを停止、またはBGSAVE完了を待つ cp /path/to/source/redis/dump.rdb ./dump.rdb
1
2
3dump.rdb
を移行先ServBayのRedisデータディレクトリへ転送:bash# 元環境または中継サーバで実行 scp ./dump.rdb your_target_server:/Applications/ServBay/db/redis/dump.rdb
1
2your_target_server
: 移行先ServBayサーバアドレス/ホスト名- 注意: ファイルコピー前に移行先ServBayのRedisサービスを必ず停止してください。
移行先でRedisサービスを再起動:サービス再開後、新しい
dump.rdb
が自動的に読み込まれます。
注意点
- サービスの停止: データベースファイル(特にMySQL/MariaDB/PostgreSQLのデータディレクトリ)を直接コピー・移動する際は、必ずServBayのGUIかCLIで該当データベースを停止してください。稼働中ファイルの直接コピーはデータ不整合・破損の原因となります。Redisも
dump.rdb
復元時は停止が必要です。 - 権限管理: ファイルのコピー・移動・インポート操作には、操作を実行するユーザーに十分なアクセス権限が必要です。
- ファイルパスの確認: ServBayのインストールパス(デフォルトは
/Applications/ServBay
)およびデータベースごとのサブディレクトリをよく確認しましょう。 - ユーザーと権限: 移行後、データベースのユーザーや権限・設定ファイルの内容も合わせて調整してください。
- ServBay内蔵バックアップ: ServBayは便利な内蔵バックアップ・リストア機能も備えています。GUIで手軽に操作でき、設定・サイトファイル・データベース・SSL証明書などもバックアップ可能です。手動ファイル管理の補完・代替手段として活用しましょう。
まとめ
ServBayは標準化されたディレクトリ構造によって、開発者がデータベースファイルを分かりやすく管理できる基盤を提供します。本記事では、MySQL・MariaDB・PostgreSQL・Redisのファイル保管場所、および標準コマンドラインツールを使ったバックアップ・リストア・移行の実践方法を詳細に解説しました。これらの操作をマスターすることで、ローカル開発環境におけるデータベース管理やデータ安全性を高め、異なる環境間でのプロジェクト移行も効率的に行えます。ServBayの内蔵バックアップ機能などとも組み合わせることで、開発効率と管理力の大幅向上が期待できます。