3

I am trying to setup repmgr using the autofailover quick setup tutorial provided on Github Link

But I am kind of stuck on the witness section, when trying to create the witness with 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

I get the following error:

Connection to database failed: fe_sendauth: no password supplied

I am not sure which database the error is talking about? Is it the master's DB or the witness'?

Also, I haven't been able to find a password parameter to pass to repmgr yet, is there even one?

Below are the repmgr.conf files for each server:

Witness:

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'

Standby:

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'

Master:

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'
  • Interesting issue. Looks like we could make some improvements to error reporting there. repmgr version? – Craig Ringer May 15 '13 at 17:09
  • Sorry completely forgot to delete the post on SO I have deleted it now though. To answer your other question the version is 2.0beta1 from the repmgr website – Mackwerk May 15 '13 at 17:21
  • Appreciated. Re passwords have you tried using a .pgpass file (see pg docs) instead of trying to specify passwords in the conninfo strings? – Craig Ringer May 15 '13 at 17:22
  • 1
    did you ever get a solution for this? Facing the same problem here.... – byrnedo Apr 17 '14 at 11:58
  • any solutions? got the same – ramusus Apr 28 '14 at 20:29
2

The error message means that repmgr account can't login onto master server with provided password (probably empty one).

You need to allow connections on master, in pg_hba.conf:

host    all     repmgr  192.168.1.1/32       md5
host    replication     all     192.168.1.1/32       md5

then trigger a master server reload:

/usr/lib/postgresql/9.1/bin/pg_ctl reload -D /var/lib/postgresql/9.1/main

(where -D is the data directory of PostgreSQL).

Assumsing you've created a repmgr account, on master with some secret_passw0rd

createuser --login --superuser -P repmgr -W
createdb -O repmgr repmgr

then on standby server create a .pgpass file in postgres home:

su - postgres
cat > .pgpass << EOF
*:*:*:repmgr:secret_passw0rd
EOF
chmod 0600 .pgpass

That's all under assumption that you're using md5 password authentication for replication, if you switch to trust you could skip setting the password:

host    all     repmgr  192.168.1.1/32       trust
host    replication     all     192.168.1.1/32       trust

Now you can check connection to your master server:

psql -h master.hostname -U repmgr

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.