接続サービスファイルの利用を推奨します。“10.2.4 接続サービスファイルを利用する場合”を参照してください。
接続サービスファイルを利用しない場合は、データベース接続制御関数(PQconnectdbParams、PQconnectdbなど)または環境変数に、以下の情報を設定します。
パラメータ(環境変数名) | 説明 |
---|---|
host(PGHOST) | カンマ区切りでホスト名を指定します。 |
hostaddr(PGHOSTADDR) | カンマ区切りでIPアドレス1およびIPアドレス2を指定します。 |
port(PGPORT) | カンマ区切りで接続先のポート番号を指定します。 ポート番号は省略できます。省略した場合には、27500になります。 hostまたはhostaddrをn個指定し、portをm個指定した場合は、エラーとなります。ただし、m=nまたはmが1の場合は、エラーとなりません。また、portを1つだけ指定した場合は、hostまたはhostaddrに指定したすべてのIPアドレスまたはホスト名に対して、同じポート番号が適用されます。 |
target_session_attrs(PGTARGETSESSIONATTRS) | アプリケーションが接続するサーバの選択順を指定します。 |
sslmode(PGSSLMODE) | 通信を暗号化する場合に指定してください。デフォルトは無効に設定されています。 disable:非SSLで接続します。 allow:非SSLで接続し、失敗したらSSLで接続します。 prefer:SSLで接続し、失敗したら非SSLで接続します。 require:必ずSSLで接続します。 verify-ca:SSLで接続し、信頼できるCAから発行された証明書を使用します。(注) verify-full:SSLで接続し、信頼できるCAから発行された証明書を使用してサーバのホスト名が証明書と一致するかを検証します。(注) |
sslservercertcn(PGXSSLSERVERCERTCN) | 本パラメータはSSL認証(sslmode=verify-full)を行う場合のみ、有効となります。 サーバ証明書のCN(Common Name)を指定します。省略した場合は、nullとなり、hostに指定されたホスト名を使用してサーバ証明書のCN(Common Name)を認証します。 |
注: “verify-ca”または“verify-full”を指定する場合、CA証明書ファイルをOSのシステム環境変数PGSSLROOTCERT(接続パラメータsslrootcert)で以下のように指定してください。
例)
変数名: PGSSLROOTCERT
変数値: CA証明書ファイル
postgresql://host1[:port1],host2[:port2][,...]/database_name [?target_session_attrs={read-write | prefer-read | any }]
IPV6を使用する場合、ホストは[host]の形式で指定してください。
[指定例]
postgresql://postgres@[2001:Db8::1234]:27500,192.168.1.1:27500/database_name
host=host1[,host2] port=port1[,port2] user=user1 password=pwd1 dbname=mydb [target_session_attrs={read-write| prefer-read | any }]
IPV6を使用する場合、ホストはhostの形式で指定してください。
[指定例]
host=2001:Db8::1234,192.168.1.1 port=27500,27500
注意
接続パラメータconnect_timeoutを利用する場合には、指定した各ホストへの接続に対してconnect_timeoutが適用されます。多重化されているデータベースサーバの両方がダウンしている場合、接続がタイムアウトするまでには、connect_timeoutの2倍の時間がかかります。
参考
パスワードファイル(.pgpass) を使用する場合は、各サーバに合致するエントリを記述してください。
例1
host1:port1:dbname:user:password host2:port2:dbname:user:password
例2
*:port:dbname:user:password