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