ServBay データベースファイル管理と移行ガイド
ServBayは強力なローカルWeb開発環境として、複数の主要なデータベース管理システムを統合し、データファイルを規則的に管理します。ServBayのデフォルトのデータベースファイル保存構造を理解することは、開発者がデータのバックアップ、復元、移行を実施する上で非常に重要です。
本記事では、ServBayの標準的なデータベースファイル保存構造の詳細と、標準コマンドラインツールを利用したデータベースファイル管理および異なる環境間での移行手順を解説します。
TIP
ServBayはデータベースのバックアップと復元機能を提供しており、MySQL、MariaDB、PostgreSQLのデータベースについて自動・手動でバックアップが可能です。詳細はバックアップと復元をご参照ください。
ServBayのデフォルトデータベースファイル保存構造
異なるデータベースバージョンのデータを管理・隔離しやすくするため、ServBayではすべてのデータベースファイルが /Applications/ServBay/db
ディレクトリに統一保存されます。このディレクトリはデータベース種別ごとに分類され、さらに主要バージョン番号毎にサブディレクトリで管理されます。
以下は /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のバックアップ
MySQLデータベースのバックアップには標準的な mysqldump
ツールを使用します。
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もMySQL同様、 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
- 接続パラメータ: PostgreSQLサーバーへの接続方法。
- macOS:
-h /Applications/ServBay/tmp
(Unixドメインソケット) - Windows:
-h localhost -p 5432
(TCP接続)
- macOS:
-U your_username
: データベースのユーザー名に置き換えてください。-d your_database
: バックアップ対象のデータベース名に置き換えてください。-F c
: 出力形式はカスタムアーカイブ(推奨)。-b
: ラージオブジェクト(blobs)を含む。-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
: Redisのデフォルト永続化ファイルパス。/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と同じく、mysql
クライアントツールを使用します。
bash
# ServBay提供のターミナル環境に切り替える
mysql -u your_username -p your_database < /Applications/ServBay/backup/your_database.sql
1
2
3
2
3
- パラメータはMySQLと同様です。
PostgreSQLの復元
カスタム形式でバックアップしたPostgreSQLデータベースは、 pg_restore
ツールで復元します。接続には -h /Applications/ServBay/tmp
を指定してください。
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
- 接続パラメータ: PostgreSQLサーバーへの接続方法。
- macOS:
-h /Applications/ServBay/tmp
(Unixドメインソケット) - Windows:
-h localhost -p 5432
(TCP接続)
- macOS:
-U your_username
: データベースユーザー名。-d your_database
: 復元先となるデータベース名(事前作成が必要)。-v
: 詳細情報を出力。- バックアップファイルのパス: バックアップファイルの保存場所。
- macOS:
/Applications/ServBay/backup/your_database.dump
- Windows:
C:\ServBay\backup\your_database.dump
- macOS:
Redisの復元
Redisの復元は、バックアップした dump.rdb
ファイルをRedisのデータディレクトリにコピーすることで行います。注意:この操作を行う前にRedisサービスを停止してください。
bash
# ServBay提供のターミナルで操作
# ServBayのRedisサービスを停止
# バックアップファイルをコピー
cp /Applications/ServBay/backup/dump.rdb /Applications/ServBay/db/redis/dump.rdb
# ServBayのRedisサービスを起動
1
2
3
4
5
2
3
4
5
/Applications/ServBay/backup/dump.rdb
: バックアップファイルのパス。/Applications/ServBay/db/redis/dump.rdb
: Redisデフォルトの永続化ファイルパス。
データベース移行
データベース移行とは、データベースを別の環境(他の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ファイル名。
エクスポートした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
: 作成するデータベース名(元データベースと同じ推奨)。
移行先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ファイルを移行先へ転送。
- 移行先ServBayでデータベース作成:bash
# 移行先ServBayのターミナルで実行 mysql -u your_target_username -p -e "CREATE DATABASE your_database;"
1
2 - 移行先ServBayでインポート実施: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
: 移行対象のデータベース名。your_database.dump
: エクスポートしたバックアップファイル名。
エクスポートしたファイルを移行先へ転送:
scp
などでyour_database.dump
を移行先ServBayにコピーします。移行先ServBayでデータベース作成:
bash# 移行先ServBayのターミナルで実行 # postgresデータベースに接続し新しいデータベースを作成 psql -h /Applications/ServBay/tmp -U your_target_username -d postgres -c "CREATE DATABASE your_database;"
1
2
3your_target_username
: 移行先環境のDBユーザー名。your_database
: 作成するデータベース名。
移行先ServBayでインポート実施:
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の
/Applications/ServBay/db/redis/
へコピーする前に、Redisサービスは停止しておいてください。
移行先ServBayでRedisサービス起動: サービス起動で新しい
dump.rdb
が自動ロードされます。
注意事項
- サービス停止: データベースファイル(特にMySQL/MariaDB/PostgreSQLのデータディレクトリ)を直接コピー・移動する場合は、必ずServBayのGUIやCLIツールで対象データベースサービスを停止してください。稼働中のデータベースファイルを直接コピーすると、不整合やデータ破損を招く危険があります。Redisで
dump.rdb
を用いて復元する際もサービスを停止する必要があります。 - 権限管理: ファイルコピーや移動、インポートの際、操作ユーザーが当該ディレクトリやファイルへ十分な権限を持つことを確認してください。
- ファイルパス: ServBayのインストールパス(デフォルトは
/Applications/ServBay
)やデータベースファイルの具体的なパス、特にバージョン毎のサブディレクトリを必ず確認してください。 - ユーザー・権限設定: 移行後は、DB内ユーザー、権限、設定ファイルなどを必要に応じて新環境に合わせて更新してください。
- ServBay内蔵バックアップ機能: ServBayにはGUI操作で設定・Webサイトファイル・データベース・SSL証明書のバックアップが容易に行える組み込み機能もあり、手動によるファイル管理の補完や代替にも活用できます。
まとめ
ServBayは規則化されたファイル構造により、開発者がデータベースファイルを明確に管理できる基盤を提供します。この記事では、ServBay上でのMySQL、MariaDB、PostgreSQL、Redisの保存場所や、各種コマンドラインツールによるバックアップ、復元、移行の実践ガイドを詳しく解説しました。これらのスキルを習得することで、ローカル開発環境のデータベース管理・運用が安全かつ効率的になり、異なる環境間でプロジェクトを迅速に展開できます。ServBayの便利機能(内蔵バックアップ等)を組み合わせることで、開発効率およびデータ管理能力をより一層高めましょう。