J'ai créé un projet Phoenix à partir de l'exemple hello utilisant Digital Ocean. J'ai entré le nom d'utilisateur et le mot de passe du fichier etc/motd.tail. Je continue à recevoir le message d'erreur ci-dessous. Je suis un débutant et pour une raison quelconque, je ne parviens pas à installer correctement l’ecto.
** (Mix) La base de données pour Hello.Repo n'a pas pu être créée, raison donnée: psql: FATAL: échec de l'authentification du mot de passe pour l'utilisateur "elixir" FATAL: échec de l'authentification du mot de passe pour l'utilisateur "élixir"
Vous pouvez utiliser les informations d'identification suivantes pour la base de données Postgress: * Utilisateur: elixir * Passer: ***
installer. Toute aide serait appréciée.
Je suppose que cette erreur se produit sur la tâche mix ecto.create
?
Cela est dû au fait que Ecto utilise psql
pour créer la base de données, mais ce n’est plus le cas dans le prochain Ecto 2.0.
Le numéro suivant de GitHub montre le même problème https://github.com/elixir-lang/ecto/issues/1207
Le commentaire pertinent avec le correctif est https://github.com/elixir-lang/ecto/issues/1207#issuecomment-17257000064 :
Ma configuration de base de données (pg_hba.conf) était apparemment erronée.
Pour toute autre personne rencontrant ceci:
Héberger toutes les my_user 127.0.0.1/32 confiance ne fonctionnera pas Héberger tout my_user localhost trust fonctionnera
Veuillez vérifier votre pg_hba.conf
(probablement dans /etc/postsgresql/9.x/pg_hba.conf
).
Je reçois la même erreur en utilisant Ubuntu 14.04 et j'ai corrigé la réinitialisation du mot de passe 'postgres':
$ Sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
et redémarrez le service postgres:
Sudo service postgresql restart
Nous avons juste besoin de créer un nouveau postgresql username
et password
en fonction des fichiers dans le dossier config
en utilisant this méthode db
$ Sudo -u postgres createuser <username>
$ Sudo -u postgres createdb <dbname>
$ Sudo -u postgres psql
psql=# alter user <username> with encrypted password '<password>';
psql=# grant all privileges on database <dbname> to <username> ;
Je devais mettre à jour le fichier pg_hba.conf pour que cela fonctionne.
J'utilise Fedora, alors accédez à/var/lib/pgsql/data
# "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
Ensuite, j'ai créé un utilisateur elixir dans postgres avec des capacités de création de base de données et l'ai configuré dans dev.exs (utilisateur/mot de passe/base de données).