連線服務檔案允許 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
,以及由環境變數或內建預設值設定的其他引數。
如果您在文件中發現任何不正確之處、與您對特定功能的實際體驗不符之處,或需要進一步澄清之處,請使用 此表單 報告文件問題。