Попытка настроить 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%