我有史以来第一次使用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安全组在美国东部地区实例控制访问权限的说明。我可以不使用欧洲实例吗?
答案 0 :(得分:5)
不,你不能使用欧洲实例。 Heroku目前仅在美国东部地区提供,您需要能够将Heroku添加到您的安全区域以使RDS实例正常工作,我想这要求您在同一区域。更为明显的是,出于延迟和安全原因,您希望与Heroku位于同一区域(否则您的数据库流量将通过Internet传输)。
答案 1 :(得分:2)
Heroku更改了其过程以允许Heroku服务器连接到RDS实例。这个问题的公认答案不再适用。
您必须授予Heroku dynos访问您的RDS实例的权限。建议的方法是将RDS实例配置为仅接受SSL加密的连接,并为您的实例配置安全组以允许从所有IP进行入口。
以前,Heroku发布了其AWS账户ID和安全组名称,作为授予AWS RDS实例访问权限的方式。 不再推荐这样做。