ページの先頭行へ戻る
Enterprise Postgres 12 アプリケーション開発ガイド
FUJITSU Software

10.2.5 C言語用ライブラリ(libpq)を利用する場合

接続サービスファイルの利用を推奨します。“10.2.4 接続サービスファイルを利用する場合”を参照してください。

接続サービスファイルを利用しない場合は、データベース接続制御関数(PQconnectdbParams、PQconnectdbなど)または環境変数に、以下の情報を設定します。

表10.5 設定する情報

パラメータ(環境変数名)

説明

host(PGHOST)

カンマ区切りでホスト名を指定します。

hostaddr(PGHOSTADDR)

カンマ区切りでIPアドレス1およびIPアドレス2を指定します。

port(PGPORT)

カンマ区切りで接続先のポート番号を指定します。
hostまたはhostaddrのn番目に指定したサーバのポート番号は、portのn番目に指定してください。

ポート番号は省略できます。省略した場合には、27500になります。

hostまたはhostaddrをn個指定し、portをm個指定した場合は、エラーとなります。ただし、m=nまたはmが1の場合は、エラーとなりません。また、portを1つだけ指定した場合は、hostまたはhostaddrに指定したすべてのIPアドレスまたはホスト名に対して、同じポート番号が適用されます。

target_session_attrs(PGTARGETSESSIONATTRS)

アプリケーションが接続するサーバの選択順を指定します。
詳細は“ターゲットサーバ”を参照してください。

sslmode(PGSSLMODE)

通信を暗号化する場合に指定してください。デフォルトは無効に設定されています。
sslmodeの設定値は以下のとおりです。

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証明書ファイル


URIを使用する場合
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

key-valueを使用する場合
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