无法将Heroku应用程序与Amazon RDS实例连接

时间:2010-10-19 14:13:02

标签: mysql ruby-on-rails amazon-web-services heroku amazon-rds

我有史以来第一次使用Amazon RDS而且我一直在关注heroku文档以使用RDS实例获取我的应用程序。到目前为止,我已经创建了一个实例,并使用以下格式设置了插件:

$ heroku addons:add amazon_rds url=mysql://user:pass@rdshostname.amazonaws.com/databasename

运行heroku rake db:migrate后我得到了

  

!!!捆绑的mysql.rb驱动rake   中止!没有这样的文件加载 - mysql

所以我安装了MySQL gem。我再次做同样的事情我得到了错误:

  

无法连接到MySQL服务器   'myapp.cqslpaxxqrok.eu-west-1.rds.amazonaws.com'   (110)

我看到有关于Heroku安全组在美国东部地区实例控制访问权限的说明。我可以不使用欧洲实例吗?

2 个答案:

答案 0 :(得分:5)

不,你不能使用欧洲实例。 Heroku目前仅在美国东部地区提供,您需要能够将Heroku添加到您的安全区域以使RDS实例正常工作,我想这要求您在同一区域。更为明显的是,出于延迟和安全原因,您希望与Heroku位于同一区域(否则您的数据库流量将通过Internet传输)。

答案 1 :(得分:2)

Heroku更改了其过程以允许Heroku服务器连接到RDS实例。这个问题的公认答案不再适用。

  

您必须授予Heroku dynos访问您的RDS实例的权限。建议的方法是将RDS实例配置为仅接受SSL加密的连接,并为您的实例配置安全组以允许从所有IP进行入口。

     

以前,Heroku发布了其AWS账户ID和安全组名称,作为授予AWS RDS实例访问权限的方式。 不再推荐这样做。

参考:https://devcenter.heroku.com/articles/amazon_rds