当我使用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: []
型
config/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'] %>
型
3条答案
按热度按时间r55awzrz1#
我也有同样的问题。
问题是,您必须通过环境变量将数据库连接到应用程序。
首先,您需要创建一个RDS示例来连接。此链接向您展示如何操作:https://aws.amazon.com/getting-started/tutorials/create-connect-postgresql-db/?nc1=h_ls
然后,在创建示例之后,您需要转到RDS服务页面,并在左侧菜单中选择示例。在列表中选择您创建的示例,并继续到名为“连接”的部分。这些是您放在这些环境变量中的值,HOSTNAME值是端点。
希望对我有帮助,对我有用!
wlzqhblo2#
我也遇到过类似的问题,但在我的情况下,RDS连接超时了。解决方案是将我的EC2示例的安全组添加到RDS安全组的“入站”部分。
要执行此操作,请转到EC2页面并搜索“Security Groups”,在那里您可以找到RDS和EC2安全组,单击RDS安全组并添加EC2安全组。
yqyhoc1h3#
我也遇到了
PG::ConnectionBad
错误,它超时了。感谢@Mateus指出了该怎么做,但我将详细介绍他的答案,以提供帮助。诊断和测试
为了证明问题(并且您已经修复了它),请将
eb ssh
简单地连接到您的服务器,然后运行:字符串
直接连接到RDS示例。它要么会立即失败,要么会花很长时间然后超时。当您完成后,它会要求您输入密码,然后工作!
解决问题
我必须将EC2示例的安全组添加到RDS安全组的Inbound部分。
要为ElasticBeanstalk执行此操作,请执行以下操作:
x1c 0d1x的数据
然后重新运行上面的测试,它应该工作!