PostgreSQL fe_sendauth: пароль не указан

19

Я знаю, что тысячи квестов, таких как здесь, здесь, но я видел их всех, и я все еще не в состоянии справиться с моей проблемой.

Я делаю все, используя ansible, поэтому он полностью автоматизирован, но, во всяком случае, вот мои файлы:

pg_hba.conf

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

database.yml

production:
  database: my_db
  adapter: postgresql
  host: localhost
  username: deploy
  encoding: unicode
  min_messages: WARNING
  template: template0

И у меня есть пользователь deploy (и пользователь postgres без набора паролей) в моей системе. И теперь, когда я полностью могу войти в postgres из bash, используя psql -d my_db (на сервере), я не могу подключиться к db с помощью моего приложения rails. Запуск rake db: migrateMigration дает мне

PG::ConnectionBad: fe_sendauth: no password supplied

Мне ужасно страшно, что я боюсь этой проблемы с позавчерашнего утра, и она все еще здесь, поэтому, если кто-нибудь может мне помочь, я буду более чем благодарен.     

задан mbajur 11.12.2014 в 10:59
источник
  • psql использует локальное соединение сокетов, rails использует localhost через TCP / IP. Локальному доверенному, localhost требует пароль (с использованием md5). Вы можете настроить файл pgpass для вашего пользователя rails: postgresql.org/docs/current/static/libpq-pgpass.html –  Frank Heikens 11.12.2014 в 11:10
  • Да, это было! Я не знал, что рельсы подключаются к postgres иначе, чем пользователь. Спасибо! Пожалуйста, добавьте его в качестве ответа, чтобы я мог отметить его как принятый :) –  mbajur 11.12.2014 в 11:52

2 ответа

13

psql использует локальное соединение сокетов, rails использует localhost через TCP / IP. Локальному доверенному, localhost требует пароль (с использованием md5). Вы можете настроить файл pgpass для пользователя ваших рельсов: Ссылка

    
ответ дан Frank Heikens 11.12.2014 в 12:16
  • , как это происходит в моем случае, psql жалуется на пустой пароль при подключении через localhost: 5432, но при использовании pgAdmin III соединение через localhost: 5432 работает? –  Abdull 16.11.2015 в 15:39
0

В C вы можете сделать это так, я даже не знаю, что такое Rails

conninfo = "hostaddr = 127.0.0.1 dbname = bitcoin user = alan password = mypass";
conn = PQconnectdb(conninfo);

У меня было точно такое же сообщение об ошибке.

    
ответ дан Alan Corey 04.04.2017 в 02:10