AWS ElasticBeanstalk EC2提供postgresql连接错误

时间:2017-07-20 13:57:49

标签: ruby-on-rails postgresql amazon-web-services amazon-ec2 amazon-rds

当我使用eb deploy在aws beanstalk上部署我的应用时,它会出错

rake aborted!
PG::ConnectionBad: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

.ebextensions / postgres.config:

packages:
yum:
 postgresql93-devel: []

配置/ database.yml中:

default: &default
adapter: postgresql
encoding: unicode
# For details on connection pooling, see rails configuration guide
# http://guides.rubyonrails.org/configuring.html#database-pooling
pool: 5

production:
<<: *default
database: <%= ENV['RDS_DB_NAME'] %>
username: <%= ENV['RDS_USERNAME'] %>
password: <%= ENV['RDS_PASSWORD'] %>
host: <%= ENV['RDS_HOSTNAME'] %>
port: <%= ENV['RDS_PORT'] %>

2 个答案:

答案 0 :(得分:3)

我有完全相同的问题。

问题是您必须通过环境变量将数据库连接到应用程序。

首先,您需要创建要连接的RDS实例。此链接显示了如何:https://aws.amazon.com/getting-started/tutorials/create-connect-postgresql-db/?nc1=h_ls

然后,在创建实例后,您需要转到RDS服务页面,然后在左侧菜单中选择实例。选择您在列表中创建的实例,然后转到名为&#34; Connect&#34;的部分。这些是您放在这些环境变量中的值,其中HOSTNAME值是端点。

希望它有所帮助,为我工作!

答案 1 :(得分:0)

我有类似的问题,但在我的情况下,RDS连接超时。解决方案是将我的EC2实例的安全组添加到&#34; inbound&#34; RDS安全组的一部分。

要执行此操作,请转到EC2页面并搜索&#34;安全组&#34;,在那里您可以找到您的RDS和EC2安全组,单击RDS安全组并添加EC2安全组。