Подтвердить что ты не робот

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

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

Я делаю все, используя 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

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

4b9b3361

Ответ 1

psql использует локальное соединение с сокетом, rails использует localhost по TCP/IP. Local является доверенным, localhost требует пароль (используя md5). Вы можете настроить файл pgpass для вашего пользователя rails: http://www.postgresql.org/docs/current/static/libpq-pgpass.html

Ответ 2

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

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

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