Попытка настроить postgres для приложения ror, получить ошибку - fe_sendauth: пароль не указан
Получение:
An error has occurred:
Error connecting to the server: fe_sendauth: no password supplied
Настройки database.yml
совпадают с настройками приложения на других машинах.
Как я могу настроить вещи так, чтобы я не нуждался в жестко закодированном пароле?
Я могу просмотреть db ok с помощью PgAdmin-III.
Я бы предпочел не иметь пароль в database.yml
, так как другие машины, использующие это приложение, не нуждаются/нуждаются в нем, поэтому, похоже, что-то о моей установке Pg.
Ответы
Ответ 1
Вам нужно изменить свое изменение pg_hba.conf
. Вот мой пример:
pg_hba.conf
:
TYPE DATABASE USER ADDRESS METHOD
host all all 127.0.0.1/32 trust
host all PC 127.0.0.1/32 trust
host all all ::1/128 trust
Обратите внимание, что trust
означает, что кто-либо из address
(в этом случае localhost) может подключиться как указанный пользователь (или в этом случае любой пользователь по своему выбору). Это действительно подходит только для конфигураций разработки с несущественными данными. Не используйте это в процессе производства.
Ответ 2
@rodrigo-zurek был на месте; вы должны изменить pg_hba.conf
. Просто хочу добавить этот ответ для пользователей OSX, поскольку по умолчанию pg_hba.conf
находится в другом месте.
sudo su - postgres
vim /Library/PostgreSQL/<YOUR_VERSION>/data/pg_hba.conf
Значение по умолчанию будет md5
в столбце METHOD
, но замените все на trust
:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
Затем откройте pgAdmin III внутри ваших приложений /PostgreSQL 9.X, щелкните правой кнопкой мыши базу данных (например, PostgreSQL 9.4 (localhost)
) и нажмите Reload Configuration
. После этого я смог rake db:create
.
Ответ 3
Никакой пароль не означает, что вы настроили его, чтобы требовать аутентификацию по паролю, и пароль не предоставляется. Вот документация для 9.0: http://www.postgresql.org/docs/9.0/static/auth-methods.html
Имейте в виду, что локальная аутентификация была изменена с "ident" на "peer" в 9.1, чтобы избежать путаницы. См. Документы 9.1 в http://www.postgresql.org/docs/9.1/static/auth-methods.html
Также имейте в виду, что это упорядоченный набор правил с первым соответствием правилам. Кроме того, локальные и локальные версии отличаются. Локальный - для локальных соединений сокета домена UNIX, а хост-хост-хост - для сетевых подключений к localhost. Похоже, что у вас есть некоторые проблемы, связанные с устранением неполадок, но, надеюсь, документы должны помочь.
Ответ 4
#appveyor.yml
services: postgresql
test_script:
- SET PGUSER=postgres
- SET PGPASSWORD=Password12!
- PATH=C:\Program Files\PostgreSQL\9.6\bin\;%PATH%