PHPスクリプトからPgpool2サーバーにリクエストを送信するには?

PHPスクリプトからPgpool2サーバーにリクエストを送信するには?

実際、私はpgpool2とdockerコンテナを使用してpostgresレプリケーションシステムを作成しようとしています。 postgresを実行する2つのコンテナとpgpool2用の別のコンテナを作成しました。したがって、PHPスクリプトを介してpgpool2サーバーに接続しようとすると、次のエラーが発生します。

pg_connect(): PostgreSQL サーバーに接続できません。サーバーに接続できません。接続が拒否されました。

答え1

私は関係がありません。ルーストアバウト以前は…しかし…

ほとんどのデフォルト設定では、postgresqlはローカル以外の接続を許可しません。リモート接続を許可するには、pg_hba.confファイルに「host」行を追加する必要があります。

通常、このファイルは次のような場所にあります。

/etc/postgresql/9.6/main/pg_hba.conf

このような:

#TYPE   DATABASE     USER         ADDRESS      AUTH METHOD
host    database1    user1     192.168.1.0/24      md5

次に、/etc/init.d/postgresql restartまたはオペレーティングシステムに適した方法でpostgresqlクラスタを再起動します。

以下を使用して、リモートホストの開いているポートを表示できるはずです。

netstat -l

正しい場合は、アドレスを 'localhost'から0.0.0.0に変更する必要があります。

また、「user1」をpostgresqlユーザーとしてパスワードと共に追加し、そのユーザーが使用するデータベースを作成する必要があります。

postgresqlスーパーユーザーになり、これを行うことができます。

sudo -s
#su postgres
postgres@host$ createuser user1 -P
     enter in a password
postgres@host$ createdb database1 -O user1

これにより、次のローカルコマンドを使用してリモートpostgresqlクラスタに接続できます。

psql -h remote.host.address -U user1 -d database1

もちろん、すべてのIPアドレスは一例です。適切に変更してください。

関連情報