Je sais qu'il existe des milliers de questions comme celle-ci ici sur SO, mais je les ai toutes vues et je ne suis toujours pas en mesure de régler mon problème.
Je fais tout en utilisant ansible, donc c'est assez automatisé, mais voici mes fichiers:
local all all trust
Host all all 127.0.0.1/32 md5
Host all all ::1/128 md5
Host all all 10.11.12.0/24 md5
production:
database: my_db
adapter: postgresql
Host: localhost
username: deploy
encoding: unicode
min_messages: WARNING
template: template0
Et j'ai créé un utilisateur deploy
(et un utilisateur postgres sans mot de passe) dans mon système. Et maintenant, bien que je sois totalement capable de me connecter à postgres depuis bash en utilisant psql -d my_db
(sur le serveur), je ne peux pas me connecter à la base de données avec mon application Rails. Lancer rake db: migrateMigration me donne
PG::ConnectionBad: fe_sendauth: no password supplied
Je suis assez terrible pour être un devop et je me bats avec ce problème depuis la veille du matin d'hier et il est toujours là, donc s'il y a quelqu'un qui peut m'aider avec ça, je serais plus que reconnaissant.
psql utilise une connexion socket locale, Rails utilise localhost sur TCP/IP. Local est approuvé, localhost requiert un mot de passe (utilisant md5). Vous pouvez configurer un fichier pgpass pour votre utilisateur Rails: http://www.postgresql.org/docs/current/static/libpq-pgpass.html
En C vous pouvez le faire comme ça, je ne sais même pas ce que Rails est
conninfo = "hostaddr = 127.0.0.1 dbname = bitcoin user = alan password = mypass";
conn = PQconnectdb(conninfo);
J'ai eu exactement le même message d'erreur.