PostgreSQL dbConnect для блестящего приложения в экземпляре ec2 - PullRequest
0 голосов
/ 04 мая 2018

У меня настроен экземпляр ec2 с моим блестящим приложением и моей базой данных postgresql, я хочу получить блестящее приложение для чтения из базы данных

Если я наберу psql и \conninfo во время ssh-ed в мой экземпляр, я получу

You are connected to database "ubuntu" as user "ubuntu" via socket in "/var/run/postgresql" at port "5432".

Когда я использую R в командной строке ec2 и набираю следующее, я не могу читать из своей базы данных без проблем!

drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, dbname = "ubuntu", host = "/var/run/postgresql", port = 5432, user = "ubuntu", password = pw)

enter image description here

Однако, когда я помещаю эти же строки в свой блестящий файл app.R, я получаю

 Error in postgresqlNewConnection(drv, ...) : 
 RS-DBI driver: (could not connect ubuntu@/var/run/postgresql:5432 on dbname "ubuntu": FATAL:  Peer authentication failed for user "ubuntu")

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

host = "localhost"
host = "my ec2 public ip address"
host = "127.0.0.1"

например, и ничего не работает. моя группа безопасности для этого экземпляра ec2 имеет подключение inboud к порту 5432.

all my inbound connections on my ec2 instance

Может ли это быть так: почему один файл зеленый, а другой розовый? зеленый - тот, который работает (локально), а розовый - в моем случае

enter image description here

enter image description here

1 Ответ

0 голосов
/ 06 мая 2018

Наконец-то разобрался .. это та же проблема, что и Получение ошибки: Ошибка аутентификации равноправного пользователя "postgres" при попытке заставить pgsql работать с rails за исключением того, что я получаю другую ошибку для той же основной проблемы.

ответ, который работал для меня, является вторым:

1

nano /etc/postgresql/9.x/main/pg_hba.conf

изменить peer в этой строке

local   all             postgres                                peer

до

local   all             postgres                                trust
  1. Перезагрузите сервер
sudo service postgresql restart
  1. Войдите в psql и установите пароль

psql -U postgres

ALTER USER postgres with password 'your-pass';
  1. Наконец, измените pg_hba.conf с
local   all             postgres                                trust

до

local   all             postgres                                md5

и это наконец сработало

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...