修改 ServBay 中 PostgreSQL 資料庫的設定
ServBay 為 macOS 開發者提供功能強大的本地 Web 開發環境,內建整合 PostgreSQL 資料庫。本文將詳盡說明如何在 ServBay 中修改 PostgreSQL 的設定選項,包括建議使用的 UI 介面操作,以及僅供臨時參考的手動設定檔修改方式。
根據您於 ServBay 安裝的 PostgreSQL 版本不同,主要設定檔通常位於 /Applications/ServBay/etc/postgresql/<version>
目錄,例如 PostgreSQL 16 的設定路徑為 /Applications/ServBay/etc/postgresql/16
。
重要提示
ServBay 透過圖形使用者介面(UI)管理多數設定,並自動產生相應設定檔。強烈建議您透過 ServBay UI 進行設定修改。 直接手動編輯設定檔,您的更動可能會在 ServBay 下次管理或更新設定時被覆蓋。手動編輯僅建議臨時測試或進階用戶了解底層機制時採用,並不適用於長期或正式環境設定。
透過 ServBay UI 介面修改設定(推薦)
ServBay 提供直覺且完整的圖形化管理介面,是最便捷且推薦的 PostgreSQL 設定方式。經由 UI 修改的參數會自動套用,且通常可即時生效(除非 ServBay 明確提示需要重啟)。
操作步驟
- 開啟 ServBay 應用程式。
- 在 ServBay 左側導覽欄,點選
資料庫
。 - 在資料庫清單中,找到
PostgreSQL
,然後按下您欲設定的 對應版本。 - 進入 PostgreSQL 設定頁面後,可查看該版本 PostgreSQL 的詳細資訊及所有可用設定選項。
可調整參數
在這個畫面,您能看到 ServBay 預設的 PostgreSQL 用戶名稱及密碼(通常此頁會顯示)。同時允許直接修改部分常用設定參數:
- 監聽位址(
listen_addresses
):控制 PostgreSQL 監聽那些網路介面,預設通常為*
,表示偵聽所有可用介面。 - 埠號(
port
):PostgreSQL 服務使用的網路埠,預設標準埠號為5432
(請注意,這與 MySQL/MariaDB 的 3306 不同)。 - 最大連線數(
max_connections
):同時允許連入資料庫的最大客戶端數量。 - 作業記憶體(
work_mem
):設定每個查詢程序於排序或雜湊運算時可使用的記憶體上限。
此外,您也可在 Additional Parameters
區塊,自行新增或編輯 UI 未直接列出的其他 postgresql.conf
參數。每行請填寫一組參數,格式為 參數名稱 = 參數值
。
套用更動
設定完成後,請按下頁面底部的 儲存
鈕,ServBay 會自動將您的更動套用。大多數設定可即時生效,極少數情況需重啟 PostgreSQL 服務,ServBay 會有相應提示。
透過手動編輯設定檔修改(不建議用於長期設定)
如前所述,手動變更設定檔不適合常規管理,因 ServBay UI 設定有可能覆蓋您的手動變更。但了解設定檔位置和內容,有助於掌握 PostgreSQL 底層設定原理。
WARNING
手動編輯設定檔僅適用於臨時除錯或進階排障。ServBay 強烈建議您透過 UI 進行設定,以確保設定持久且一致。因內部機制,手動變更路徑及內容可能被 ServBay 重設。
設定檔位置
ServBay 中 PostgreSQL 主要設定檔為 postgresql.conf
和 pg_hba.conf
。其具體位置依 PostgreSQL 版本略有不同,一般如下:
postgresql.conf
:/Applications/ServBay/etc/postgresql/<version>/postgresql.conf
pg_hba.conf
:/Applications/ServBay/etc/postgresql/<version>/pg_hba.conf
請注意,舊文件中提及 /db/postgresql/16/pg_hba.conf
為早期或內部路徑,ServBay UI 主要管理 /Applications/ServBay/etc
目錄下設定。進行手動變更時,務必確認實際使用之設定路徑。為與 ServBay UI 同步,/Applications/ServBay/etc/postgresql/<version>
乃最可靠之設定儲存位置。
常見設定範例
以下為 postgresql.conf
與 pg_hba.conf
常見設定範例。請以具管理員權限的純文字編輯器(如 VS Code、Sublime Text、Nano 等)打開並修改。
postgresql.conf
postgresql.conf
為 PostgreSQL 伺服器主設定檔,管控絕大部分服務行為。
# 監聽位址:指定伺服器監聽的網路介面。'*' 表示所有介面。
listen_addresses = '*'
# 埠號:伺服器監聽的網路端口,通常 PostgreSQL 標準埠號為 5432。
port = 5432
# 最大連線數:允許同時進入資料庫的最大客戶端數。
max_connections = 100
# 共用快取大小:PostgreSQL 用於資料快取的共用記憶體大小。
shared_buffers = 128MB
# 日誌目錄:指定日誌檔儲存的資料夾。
log_directory = 'log'
# 日誌檔名格式:指定日誌檔的命名方式。
log_filename = 'postgresql-%Y-%m-%d.log'
# 啟用慢查詢日誌:記錄花費超過指定毫秒數的查詢。
# 設為正整數,例如 2000 表示記錄超過 2 秒的查詢。
# 設為 -1 則關閉慢查詢日誌功能。
log_min_duration_statement = 2000
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
pg_hba.conf
pg_hba.conf
(Host-Based Authentication)設定用於定義客戶端連線的驗證方式與存取權限。
# TYPE DATABASE USER ADDRESS METHOD
# 允許透過 Unix Domain Socket 本機連線,認證方式採用 trust(不需密碼)。
# "local" is for Unix domain socket connections only
local all all trust
# 允許所有 IPv4 位址經由 TCP/IP 進行遠端連線,採 md5 密碼認證。
# IPv4 local connections:
host all all 0.0.0.0/0 md5
# 允許特定 IPv4 子網(如 192.168.1.0/24)遠端連線,亦採 md5 密碼認證。
# IPv4 local connections from a specific subnet:
# host all all 192.168.1.0/24 md5
2
3
4
5
6
7
8
9
10
11
12
13
修改 pg_hba.conf
時務必理解各欄意義(TYPE
、DATABASE
、USER
、ADDRESS
、METHOD
),錯誤設定可能導致連線失敗或資安風險。
套用手動修改後的設定
手動調整設定檔後,須重啟 PostgreSQL 服務以套用新設定。
透過 ServBay 管理介面重啟
- 開啟 ServBay 管理界面。
- 左側選擇
資料庫
。 - 找到
PostgreSQL
,選擇相對應版本。 - 在頁面或主畫面的「套件/服務」清單中,找到該版本 PostgreSQL 服務,點擊
重啟
按鈕。
透過 servbayctl
指令工具重啟
可用 ServBay 命令行工具 servbayctl
便捷管理服務,包括重啟 PostgreSQL:
servbayctl restart postgresql <version>
請以您實際使用的 PostgreSQL 版本(如 16
)替換 <version>
。
總結
ServBay 提供直覺的 UI 介面來修改 PostgreSQL 設定,這是最建議也最能避免設定被覆蓋的方式。您可以透過 UI 調整常見參數如監聽位址、埠號、最大連線數等,也可查看預設資料庫帳密。若遇需手動除錯的情境,主要設定檔 postgresql.conf
及 pg_hba.conf
位於 /Applications/ServBay/etc/postgresql/<version>
。不論採哪種方式調整設定,通常都需重啟 PostgreSQL 服務才能生效,可經由 ServBay UI 或 servbayctl
指令完成。
熟悉這些設定與調整方法,有助根據開發需求最佳化 ServBay 中 PostgreSQL 資料庫環境。