【发布时间】:2020-06-30 07:10:41
【问题描述】:
我想使用托管在我自己的服务器上的 mysql 数据库。 我已将 DATABASE_URL 和 SHARED_DATABASE_URL 配置变量更改为指向我的服务器,但它仍在尝试连接到 heroku 的 amazonaws 服务器。我该如何解决?
【问题讨论】:
我想使用托管在我自己的服务器上的 mysql 数据库。 我已将 DATABASE_URL 和 SHARED_DATABASE_URL 配置变量更改为指向我的服务器,但它仍在尝试连接到 heroku 的 amazonaws 服务器。我该如何解决?
【问题讨论】:
根据Heroku documentation,改DATABASE_URL才是正确的做法。
如果您想让 Rails 应用程序连接到非 Heroku 提供的数据库,您可以利用相同的机制。只需将您的 DATABASE_URL 配置变量设置为指向任何云可访问的数据库,Heroku 将自动创建您的 database.yml 文件以指向您选择的服务器。 Amazon RDS 插件会自动为您执行此操作,但您也可以使用相同的方法连接到非 RDS 数据库。
这是一个应该可以工作的例子:
heroku config:add DATABASE_URL=mysql://user:password@host/db
您可能需要通过更改并运行 git push heroku master 来重新部署
【讨论】:
顺便说一句,主机是 XXXX.amazonaws.com,其中 XXX 是一个长主机名,可能会发生变化。如果可以加通配符,那是最简单的%.amazonaws.com
【讨论】:
我的 Dreamhost MySQL 数据库也有同样的问题。原来解决方案是告诉 Dreamhost 可以接受来自这个外国主机的连接。否则,Dreamhost 会阻止所有非来自其系统的对 MySQL 的请求。
似乎如果 Heroku 回退到 Amazon AWS,尽管您有 DATABASE_URL,那是因为它被拒绝访问您的 MySQL 数据库。
【讨论】: