支援的版本:目前 (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 連線字串中指定該服務名稱,並使用相關聯的設定。這允許修改連線參數,而無需重新編譯使用 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 以及由環境變數或內建預設值設定的其他參數。

提交更正

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