хуйу нас не матерятся
При разворачивании проекта на руби возникла ошибка: Peer authentication failed for user “postgres”. После недолгого гугления выяснилось, что приложение пытается подключаться к базе данных, используя логин и пароль, и не обращает внимание на то, что в настройках бд выставлено подключение в положение "peer"- не требующее вводить пароль при подключении, а проверяющее права пользователя операционной системы.
Чтобы это исправить нужно сделать следующее:
ALTER USER ваш_пользователь with password 'новый_пароль';
# Database administrative login by Unix domain socket
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
И меняем параметр peer на md5 во всех строчках:
# Database administrative login by Unix domain socket
local all postgres md5
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
После этого приложение должно нормально подключаться к базе данных. Также в методе проверки подлинности могут использоваться следующие параметры: "trust", "reject", "md5", "password", "gss", "sspi", "krb5", "ident", "peer", "pam", "ldap", "radius" or "cert".
Самые распространённые: "trust" - авторизовывать всех, "md5"- авторизовывать по передаваемому паролю, "peer"- авторизовывать по правам текущего пользователя системы.
pg_dump -h localhost -U postgres -F c -b -v -f mydb.backup mydb