2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1

32.17. 連線服務檔案 #

連線服務檔案允許 libpq 連線引數與單個服務名稱關聯。然後可以使用 libpq 連線字串中的 service 關鍵字指定該服務名稱,並使用關聯的設定。這允許在不重新編譯使用 libpq 的應用程式的情況下修改連線引數。服務名稱也可以透過 PGSERVICE 環境變數指定。

服務名稱可以在每個使用者的服務檔案或系統範圍的檔案中定義。如果同一個服務名稱同時存在於使用者檔案和系統檔案,則使用者檔案優先。預設情況下,每個使用者的服務檔名為 ~/.pg_service.conf。在 Microsoft Windows 上,它名為 %APPDATA%\postgresql\.pg_service.conf(其中 %APPDATA% 指使用者配置檔案中的 Application Data 子目錄)。可以透過設定環境變數 PGserviceFILE 來指定不同的檔名。系統範圍的檔名為 pg_service.conf。預設情況下,它在 PostgreSQL 安裝的 etc 目錄中搜索(使用 pg_config --sysconfdir 精確識別此目錄)。可以透過設定環境變數 PGSYSCONFDIR 來指定另一個目錄,而不是不同的檔名。

任一服務檔案都使用“INI 檔案”格式,其中部分名稱是服務名稱,引數是連線引數;有關列表,請參閱 第 32.1.2 節。例如:

# comment
[mydb]
host=somehost
port=5433
user=admin

PostgreSQL 安裝中的 share/pg_service.conf.sample 檔案提供了一個示例。

從服務檔案中獲得的連線引數會與其他來源獲得的引數結合。服務檔案設定會覆蓋相應的環境變數,而服務檔案本身又會被連線字串中直接提供的值覆蓋。例如,使用上述服務檔案,連線字串 service=mydb port=5434 將使用主機 somehost、埠 5434、使用者 admin,以及由環境變數或內建預設值設定的其他引數。

提交更正

如果您在文件中發現任何不正確之處、與您對特定功能的實際體驗不符之處,或需要進一步澄清之處,請使用 此表單 報告文件問題。