#ruby_on_rails #postgresql
При создании базы возникает следующая ошибка:
andrey@asus:~/project/odnogrupniki$ rake db:create:all
FATAL: Peer authentication failed for user "odnogrupniki"
логи целиком: ТУТ
databse.yml:
default: &default
adapter: postgresql
encoding: unicode
pool: 5
timeout: 5000
username: 'odnogrupniki'
password: '1111'
development:
<<: *default
database: odnogrupniki
test:
<<: *default
database: odnogrupniki_test
production:
<<: *default
database: odnogrupniki_production
в Gemfile добавлял: gem 'pg'
Bundle - выполнял
andrey@asus:~/project/odnogrupniki$ psql --version
psql (PostgreSQL) 9.5.1
Пользователя создавал так:
postgres@asus:/home/andrey/project/odnogrupniki$ createuser odnogrupniki -P -S -R -D
Enter password for new role:
Enter it again:
Ответы
Ответ 1
Локально можно настроиться на работу по peer athentication, но для этого в базе данных должен быть пользователь с таким же именем, какой у подключающегося логин в операционной системе. Для разработки это можно настроить максимально быстро на чистом дистрибутиве. Чтобы ActiveRecord подключался, удостоверяясь только с помощью учётной записи подключающегося через Unix domain socket, то надо убрать логин, пароль и хост из настроек подключения. Совсем. А сделать "себя" суперпользователем в БД на свежеустановленном PostgreSQL (когда пользователь там всего один, postgres) можно в одну команду: sudo -u postgres createuser --superuser $(whoami) \______________/ \______________________________/ Притворившись Создать суперпользователя с postgres именем, выведенным командой whoami А дальше обычное rake db:create и прочее. Плюсов у такого подхода хватает: Работает с настройками по умолчанию: установил, сделал себя-администратора и вперёд Учётные данные ни в какой момент не существуют в рабочем дереве На "боевом" сервере так делать не стоит, но это уже совсем другая история...Ответ 2
Замените в конфигурационном файле pg_hba.conf метод аутентификации, вместо аутентификации по системным учетным записям local all postgres peer укажите аутентификацию по паролю local all postgres md5
Комментариев нет:
Отправить комментарий