Githubで提供されている自動フェイルオーバークイックセットアップチュートリアルを使用してrepmgrをセットアップしようとしています Link
しかし、repmgr -d repmgr -U repmgr -h [MASTERIP] -D /var/lib/postgresql/9.1/witness -f /var/lib/postgresql/9.1/repmgr/repmgr.conf witness create
を使用して証人を作成しようとすると、私は証人セクションで立ち往生しています。
次のエラーが発生します。
Connection to database failed: fe_sendauth: no password supplied
エラーが話しているデータベースがわかりませんか?マスターのDBか証人か?
また、repmgrに渡すパスワードパラメータがまだ見つかりません。1つでもありますか?
以下は、各サーバーのrepmgr.confファイルです。
証人:
cluster=main
node=3
node_name=witness
conninfo='Host=[WITNESS IP] dbname=witness user=witness password=witness port=5499'
master_response_timeout=60
reconnect_attempts=6
reconnect_interval=10
failover=automatic
promote_command='promote_command.sh'
follow_command='/usr/lib/postgresql/9.1/bin/repmgr standby follow -f /etc/repmgr/repmgr.conf'
待機する:
cluster=main
node=2
node_name=node2
conninfo='Host=[STANDBY IP] dbname=[DB NAME] user=[DB USER NAME] password=[PASSWORD]'
master_response_timeout=60
reconnect_attempts=6
reconnect_interval=10
failover=automatic
promote_command='promote_command.sh'
follow_command='/usr/lib/postgresql/9.1/bin/repmgr standby follow -f /etc/repmgr/repmgr.conf'
主人:
cluster=main
node=1
node_name=node1
conninfo='Host=[MASTER IP] dbname=[MASTER DB] user=[MASTER DB USER] password=[PASSWORD]'
master_response_timeout=60
reconnect_attempts=6
reconnect_interval=10
failover=automatic
promote_command='promote_command.sh'
follow_command='/usr/lib/postgresql/9.1/bin/repmgr standby follow -f /etc/repmgr/repmgr.conf'
エラーメッセージは、repmgr
アカウントが提供されたパスワード(おそらく空のパスワード)でmasterサーバーにログインできないことを意味します。
pg_hba.conf
の-masterで接続を許可する必要があります:
Host all repmgr 192.168.1.1/32 md5
Host replication all 192.168.1.1/32 md5
次に、マスターサーバーのリロードをトリガーします。
/usr/lib/postgresql/9.1/bin/pg_ctl reload -D /var/lib/postgresql/9.1/main
(-D
はPostgreSQLのデータディレクトリです)。
いくつかのsecret_passw0rd
を使用してマスターでrepmgr
アカウントを作成したと仮定します
createuser --login --superuser -P repmgr -W
createdb -O repmgr repmgr
次にstandbyサーバーでpostgres
ホームに.pgpass
ファイルを作成します:
su - postgres
cat > .pgpass << EOF
*:*:*:repmgr:secret_passw0rd
EOF
chmod 0600 .pgpass
レプリケーションにmd5
パスワード認証を使用していることを前提にしていますが、trust
に切り替えると、パスワードの設定をスキップできます。
Host all repmgr 192.168.1.1/32 trust
Host replication all 192.168.1.1/32 trust
これで、マスターサーバーへの接続を確認できます。
psql -h master.hostname -U repmgr