Я создаю приложение Rails и использую его базу данных Postgresql. Я создал несколько таблиц и пользователя, core
, который является владельцем каждой из таблиц.Ошибка аутентификации пароля для Postgresql
postgres=# create user core with password 'n7zD5FG5';
CREATE ROLE
postgres=# create database core_apps_prod with owner core;
CREATE DATABASE
postgres=# create database core_apps_dev with owner core;
CREATE DATABASE
postgres=# create database core_apps_test with owner core;
CREATE DATABASE
И мой database.yml
файл:
development:
adapter: postgresql
database: core_apps_dev
username: core
password: n7zD5FG5
host: localhost
Однако, когда я бегу rake db:migrate
, я получаю ошибку
rake aborted!
FATAL: password authentication failed for user "core"
Я также не могу подключиться к psql
вручную: psql -U core -W -d core_apps_dev
- я получаю такая же ошибка.
Как я могу разрешить core
для подключения к Postgresql на localhost
?
Выход SELECT * FROM pg_roles where rolname='core';
является:
rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcatupdate | rolcanlogin | rolreplication | rolconnlimit | rolpassword | rolvaliduntil | rolconfig | oid
---------+----------+------------+---------------+-------------+--------------+-------------+----------------+--------------+-------------+---------------+-----------+-------
core | f | t | f | f | f | t | f | -1 | ******** | | | 16392
Добавить '-h localhost' к Psql для подключения к локальному, в противном случае он использует сокеты Unix, которые имеют различные правила аутентификации. Кроме того, используя '-W', вы не будете знать, нужен ли серверу пароль или нет, что добавляет путаницы при устранении проблем с паролями.Просто опустите '-W' –
Я пробовал это, выполнив команду' psql -h localhost -U core -d core_apps_dev' и введя пароль, но он все еще говорит: 'psql: FATAL: аутентификация пароля не удалась для пользователя« core »' , Я дважды убедился в правильности пароля, выполнив «ALTER USER core PASSWORD» n7zD5FG5 '; ', но он все еще не прошел. – josh
Что вы делали для меня. На данный момент я подозреваю несколько возможностей: 1. создав учетную запись на другом экземпляре PG. 2. [pgadmin bug on valuntil] (http://stackoverflow.com/questions/14564644), хотя вы никогда не упоминали pgadmin. 3. Странность в pg_hba.conf. 4. странность в postgresql.conf по параметрам auth. Чтобы немного разобраться, я бы установил метод auth 'trust' в pg_hba.conf в соответствующей строке, перезагрузите PG и повторите попытку. Он должен подключиться без запроса пароля. –