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 的備份方式與 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
- 參數說明同上。
備份 PostgreSQL
備份 PostgreSQL 可使用 pg_dump
工具。需要注意 ServBay 環境下 PostgreSQL 通常透過 Unix Domain Socket 連線,預設路徑為 /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 Domain Socket 路徑) - 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
- 參數說明同上。
還原 PostgreSQL
使用 pg_restore
工具還原 PostgreSQL 自訂格式備份。亦需指定 socket 路徑 -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 Domain Socket 路徑) - 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
:來源環境的資料庫帳號。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
:目的環境之資料庫帳號。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
工具進行,需留意 Socket 路徑。
來源環境匯出資料庫:
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
:來源環境之資料庫帳號。your_database
:欲遷移之資料庫名稱。your_database.dump
:匯出備份檔名。
將備份檔傳送至目的 ServBay 環境:可用
scp
或其他工具,將your_database.dump
傳至目的環境可存取位置。於目的端 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
:目的環境資料庫帳號。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
3將
dump.rdb
傳送到目的端 ServBay Redis 資料目錄:bash# 在來源或中間伺服器執行 scp ./dump.rdb your_target_server:/Applications/ServBay/db/redis/dump.rdb
1
2your_target_server
:請替換目的端 ServBay 主機位址。- 重要:複製至
/Applications/ServBay/db/redis/
前必須先停止目的端 ServBay Redis 服務。
啟動目的端 ServBay Redis 服務:服務啟動後即會自動載入新的
dump.rdb
。
注意事項
- 停止服務:在直接複製或移動資料庫檔(尤其是 MySQL/MariaDB/PostgreSQL 資料目錄)前,一定要先透過 ServBay GUI 或命令列停止對應資料庫服務。於運行中直接操作檔案可能導致資料不一致或損毀。Redis 以
dump.rdb
還原時同樣需先停服務。 - 權限問題:進行檔案複製、移動或匯入時,須確保操作帳號有足夠權限讀寫相關目錄及檔案。
- 路徑確認:務必核對 ServBay 安裝目錄(預設
/Applications/ServBay
)及各資料庫檔案的確切路徑,尤其在不同版本的子目錄下。 - 帳號與權限:遷移後,請檢查資料庫中的帳號、權限及設定檔是否需依新環境更新。
- ServBay 內建備份:ServBay 提供便捷的 GUI 備份與還原功能,支援設定、網站檔案、資料庫及 SSL 憑證等,除手動檔案管理外,可作為有效補充或替代方案。
結論
ServBay 透過結構化檔案管理,為開發者奠定良好的資料庫管理基礎。本文詳細說明 MySQL、MariaDB、PostgreSQL 及 Redis 在 ServBay 中的檔案儲存位置,並從備份、還原到遷移,提供標準命令列工具的實用操作指南。熟練掌握這些技能可幫助您安全且高效管理本地開發環境之資料庫資料,並順利完成跨環境的專案遷移。結合 ServBay 的各種便利功能(如內建備份),將大幅提升您的開發效率與資料管理能力。