Феникс и Постгрес устанавливают - не разговаривают - PullRequest
0 голосов
/ 03 мая 2018

Моя ОС - Fedora 26

Я установил Postgresql и Phoenix.

В Postgres есть суперпользователь "postgres" с паролем "postgres". Это подтверждается запуском \ du в psql.

Когда я запускаю $ mix ecto.create, я получаю

** (Mix) The database for Hello.Repo couldn't be created: FATAL 28000 (invalid_authorization_specification): Ident authentication failed for user "postgres"

Я подозреваю, что это может быть проблема с разрешениями. Для входа в psql требуется

$ sudo -u postgres psql postgres

Принимая во внимание, что Феникс при попытке использовать postgres может не иметь привилегий sudo.

$ psql --version
psql (PostgreSQL) 9.6.8

Любые мысли приветствуются.

1 Ответ

0 голосов
/ 03 мая 2018

По умолчанию аутентификация пользователя базы данных postgres, подключающегося к БД локально, заключается в проверке того, что пользователь операционной системы также является postgres. Это то, что в сообщении об ошибке упоминается как идентификация Ident, и именно поэтому соединение после выполнения sudo -u postgres работает.

Чтобы подключиться как пользователь postgres, используя другое средство аутентификации, вам нужно отредактировать файл pg_hba.conf. (HBA означает аутентификацию на основе хоста).

Строка, которая позволяет это, будет выглядеть следующим образом:

local   all             postgres                                peer

Добавьте строку, которая выглядит следующим образом (без удаления другой строки!):

local   all             postgres                                md5

И вы также сможете подключиться, используя пароль для postgres.

Если я правильно помню, вам нужно будет перезапустить БД, чтобы это вступило в силу.

...