Ошибка аутентификации учетной записи Ecto Postgres
Я создал проект phoenix с примера hello, используя цифровой океан. Я ввел имя пользователя и пароль из файла etc/motd.tail. Я продолжаю получать сообщение об ошибке ниже. Я новичок, и по какой-то причине я просто не могу правильно установить ecto.
** (Mix) База данных для Hello.Repo не может быть создана, причина указана: psql: FATAL: аутентификация пароля не удалась для пользователя "elixir"
FATAL: аутентификация паролей для пользователя "эликсир"
Вы можете использовать следующие учетные данные учетной записи Postgress: * Пользователь: elixir * Pass: ***
установить. Любая помощь будет оценена по достоинству.
Ответы
Ответ 1
Я предполагаю, что эта ошибка происходит в задаче mix ecto.create
?
Это происходит потому, что Ecto использует psql
для создания базы данных, однако это уже не так в предстоящем Ecto 2.0.
Следующая проблема GitHub показывает ту же проблему https://github.com/elixir-lang/ecto/issues/1207
Соответствующий комментарий с исправлением https://github.com/elixir-lang/ecto/issues/1207#issuecomment-172570064:
Моя конфигурация базы данных (pg_hba.conf) была, по-видимому, неправильной.
Для всех, кто сталкивается с этим:
host all my_user 127.0.0.1/32 доверие не будет работать хост все my_user localhost trust будет работать
Пожалуйста, проверьте pg_hba.conf
(вероятно, в /etc/postsgresql/9.x/pg_hba.conf
).
Ответ 2
Я получаю ту же ошибку, используя Ubuntu 14.04, и исправил сброс пароля postgres:
$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
и перезапустите службу postgres:
sudo service postgresql restart
Ответ 3
Мне нужно было обновить pg_hba.conf, чтобы сделать эту работу.
Я использую Fedora, поэтому перейдите в /var/lib/pgsql/data p >
# "local" is for Unix domain socket connections only
local all postgres peer
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 ident
Затем я создал пользователя elixir в postgres с возможностями создания базы данных и настроил его в dev.exs(user/password/database)