以下の環境変数を使用して、呼び出し側のプログラムで直接値を指定しなかった場合の接続パラメータのデフォルト値を選ぶことができます。
この値は、PQconnectdb
、PQsetdbLogin
および、PQsetdb
で使用されます。
例えば、簡単なクライアントアプリケーションでは、データベース接続情報を直接プログラムに記述しない方が便利です。
PGHOSTはデータベースサーバ名を設定します。 スラッシュで始まる場合はTCP/IP通信ではなく、Unixドメインソケット通信を指定したものになります。 この時の値はソケットファイルが格納されるディレクトリ名です(デフォルトのインストール時の設定では/tmpです)。
PGHOSTADDRは、データベースサーバの数字で表したIPアドレスを指定します。
PGHOSTの代わりに設定して、または、PGHOSTに追加して、DNS検索に要するオーバヘッドをなくすことができます。
この相互作用についての詳細は、パラメータについての文書、上述のPQconnectdb
を参照してください。
PGHOSTもPGHOSTADDRも設定されていない場合のデフォルトの動作は、ローカルなUnixドメインソケットに接続することです。 ただし、Unixドメインソケットを持たないマシンでは、libpqはlocalhostへの接続を試みます。
PGPORTは、PostgreSQLサーバと通信するためのデフォルトのTCPポート番号、またはUnixドメインソケットファイルの拡張子を設定します。
PGPASSWORD PGPASSWORDは、バックエンドがパスワード認証を要求した場合に使われるパスワードを設定します。 この環境変数は、セキュリティ上の理由(いくつかのオペレーティングシステムではroot以外のユーザがpsコマンド経由で環境変数を見ることができるため)から現在では推奨されていません。 代わりに~/.pgpassを使用することを検討してください。 (項29.13を参照してください。)
PGPASSFILE パスワードファイルの名前を指定します。指定していなければ、デフォルトの ~/.pgpass となります。(詳しくは 項29.13 を参照してください)。
PGSERVICE PGSERVICEはpg_service.conf内で検索されるサービス名を設定します。 これは、全てのパラメータ設定を簡易化する方法を提供します。
PGREALMは、PostgreSQLで使用するKerberosのレルムがローカルのものと異なる場合に、そのレルムを設定します。 PGREALMが設定されると、libpqアプリケーションは設定されたレルム用のサーバと認証を行い、また、別のチケットファイルを使って、ローカルのチケットファイルと競合しないようにします。 この環境変数は、サーバがKerberosによる認証を選択した場合にのみ使われます。
PGSSLMODEは、サーバとのSSL接続用の調整を行うかどうか、および、その際の重要度を決定します。 4つのモードがあります。 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により廃れたものになり、また、SSLサポート付きでPostgreSQLがコンパイルされた場合にのみ利用できます。
PGKRBSRVNAMEは、認証に Kerberos 5 を利用しているときに Kerberos のサービス名を指定します。
PGCONNECT_TIMEOUTは、libpqがPostgreSQLサーバへの接続確立を待つ、最大秒数を指定します。 未設定、もしくは、ゼロに設定した場合、libpqは永久に待機します。 この待機時間は2秒未満に設定することは非推奨です。
以下の環境変数を使用して、PostgreSQLセッション毎のデフォルト動作を指定することができます。 (また、ユーザ毎、もしくは、データベース毎を単位としたデフォルト動作の設定方法についてはALTER USERおよびALTER DATABASEコマンドを参照してください。)
PGDATESTYLE PGDATESTYLE は、デフォルトの日付/時刻表現形式を設定します。 (SET datestyle TO ...と等価です。)
PGCLIENTENCODING は、デフォルトのクライアントの文字セット符号化方式を指定します。 (SET client_encoding TO ...と等価です。)
PGGEQO は、遺伝的問い合わせオブティマイザのデフォルトのモードを設定します。 (SET geqo TO ...と等価です。)
これらの環境変数の正確な値については、SET SQLコマンドを参照してください。
以下の環境変数は、libpqの内部動作を決定します。 これらはコンパイル時のデフォルトを上書きします。