| PostgreSQL 8.0.0 中文文件(轉譯自 PostgreSQL 中國 製作的簡體中文版本) | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 27. libpq - C 庫 | Fast Forward | Next |
下面的環境變量可以用於選擇預設的連接參數值, 這些值將被 PQconnectdb 或 PQsetdbLogin 使用 — 如果調用代碼沒有直接聲明相應值的話。 比如,這些(環境變量)可以避免把麻煩的資料庫名強加入簡單的應用程序的硬代碼裡面。
PGHOST 設置資料庫伺服器名。 如果它以一個斜槓開頭,那麼它聲明一個 Unix 域套接字而不是 TCP/IP 通訊; 其值就是該套接字文件儲存的目錄(在預設安裝中,這個目錄會是 /tmp)。
PGHOSTADDR 聲明資料庫伺服器地數值 IP 地址。 我們可以額外設置這個環境變量,或者是替代 PGHOST,以避免 DNS 查找的過熱。 參閱這個參數的文件,在上面的 PQconnectdb 裡,獲取它們的相互關係的細節。
如果既沒有聲明 PGHOST 也沒有聲明 PGHOSTADDR, 預設的行為是使用一個 Unix 域套接字連接;或者在沒有 Unix 域套接字的機器上, libpq 將試圖與 localhost 連接。
PGPASSWORD 如果伺服器要求指令認證,設置使用的指令。 因為安全原因,這個功能已經廢棄了;應該考慮使用 ~/.pgpass代替(參閱Section 27.12)。
PGREALM 設置與PostgreSQL一起使用的 Kerberos 領地 — 如果該領地與本地領地不同的話。 如果設置了 PGREALM ,libpq 應用將試圖用這個域(realm)與伺服器進行認證並且使用獨立的門票文件(ticket files)以避免與本地的門票文件衝突。 只有在伺服器選擇了 Kerberos 認證時才使用這個環境變量。 (譯註:門票文件是 Kerberos認證協議中用於交換密鑰的一個文件/伺服器。)
PGSSLMODE 設置該連接是否與伺服器協商在 SSL 連接, 以及 SSL 連接的優先級。 有四種模式:disable 將只進行無加密的 SSL 連接嘗試; allow 將進行協商,首先嘗試非 SSL 連接,如果這個失敗, 再嘗試 SSL 連接;prefer (預設)將進行協商,首先嘗試 SSL 連接, 然後如何這個失敗,將嘗試一個普通的非SSL連接;require 將只嘗試SSL 連接。 如果編譯 PostgreSQL 的時候沒有打開 SSL 支援,那麼使用 require 選項將導致一個錯誤, 而使用 allow 和 prefer 將被接受, 但是 libpq 實際上不會準備進行 SSL 連接。
PGREQUIRESSL設置一個連接是否必須在 SSL 上進行。 如果設置為 "1",那麼如果伺服器不支援 SSL 連接,那麼 libpq 將拒絕連接(等效於 sslmode 為 prefer)。 因為有了 sslmode 的設置,所以這個選項已經廢棄了,這個選項只有在 PostgreSQL 編譯的時候打開了 SSL 支援才能用。
PGCONNECT_TIMEOUT 設置在等待與 PostgreSQL 伺服器連接的時候,libpq 等待的最大的秒數。 如果未設置或者為 0,libpq 將不停等待。 我們不建議把這個值設置得少於 2 秒。
下面的環境變量可以用於為每個PostgreSQL 會話聲明預設特性(又見 ALTER USER 和 ALTER DATABASE 命令獲取基於用戶和資料庫設置預設行為的方法。)
請參考 SQL 命令 SET 獲取這些環境變量的正確數值。
下面的環境變量決定 libpq 的內部行為; 它們覆蓋編譯的預設。