如何在heroku中使用自己的mysql数据库服务器?

时间:2011-01-16 21:01:49

标签: ruby heroku

我想使用托管在我自己的服务器上的mysql数据库。 我已将DATABASE_URL和SHARED_DATABASE_URL配置变量更改为指向我的服务器,但它仍在尝试连接到heroku的amazonaws服务器。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:10)

根据Heroku documentation,更改DATABASE_URL是正确的方法。

  

如果您希望将rails应用程序连接到非Heroku提供的数据库,则可以利用此相同的机制。只需将您的DATABASE_URL配置var设置为指向任何可通过云访问的数据库,Heroku将自动创建您的database.yml文件以指向您选择的服务器。 Amazon RDS Add-on会自动为您执行此操作,但您也可以使用相同的方法连接到非RDS数据库。

这是一个应该有效的例子:

heroku config:add DATABASE_URL=mysql://user:password@host/db

您可能需要通过更改并运行git push heroku master

来重新部署

答案 1 :(得分:3)

顺便说一下,主持人是XXXX.amazonaws.com,其中XXX是一个可能会发生变化的长主持人。如果您可以添加通配符,那么这是最简单的%.amazonaws.com

答案 2 :(得分:0)

我的Dreamhost MySQL数据库遇到了同样的问题。事实证明解决方案是告诉Dreamhost是否接受来自这个外国主机的连接。否则,Dreamhost会阻止所有不是源自其系统的MySQL请求。

似乎如果Heroku尽管你的DATABASE_URL回到亚马逊AWS,那是因为它被拒绝访问你的MySQL数据库。