【问题标题】:Rails development environment trying to connect to AWS database, not localhost's PostgreSQLRails 开发环境试图连接到 AWS 数据库,而不是 localhost 的 PostgreSQL
【发布时间】:2017-07-01 08:37:29
【问题描述】:

我有一个现有的 Rails 应用程序,该应用程序以前在我的本地笔记本电脑(运行 OSX)上成功运行,数据库本地存储在 PostgreSQL 中。我还成功地将 Rails 应用程序部署到 Elastic Beanstalk,并使用 RDS 中的数据库 - 托管站点仍在运行。

我已经好几个月没有接触 localhost 版本了,今天尝试使用 rails server -e development 启动它,但是像往常一样访问 http://localhost:3000/ 时,我收到一条 PG 错误消息

PG::ConnectionBad at / FATAL: 用户密码验证失败 “murjfphxxxxxx”致命:主机“115.x.x.x”没有 pg_hba.conf 条目, 用户“murjfphxxxxxx”,数据库“d37vsvehxxxxxx”,SSL 关闭

Rails 控制台中会抛出相同的错误。好像开发版是在尝试连接AWS数据库,而不是localhost数据库,但是我不知道为什么。

/config/database.yml 列出开发环境为:

development: adapter: postgresql encoding: unicode database: <my-app>_development host: localhost pool: 5 username: postgres password: <password>

我可以通过PSQL连接到localhost PG数据库并查看内容,看来localhost PG数据库是有效的。

为什么开发环境会尝试连接到 AWS 版本的数据库?如果您需要任何进一步的信息来调试,请告诉我。

使用 ruby​​-2.3.1、Rails 4.2.0、PostgreSQL 9.6.0.0

【问题讨论】:

  • 你有没有试过运行rails s RAILS_ENV=development来看看它是否使用了正确的环境?
  • @Coolness 抱歉,我想说的是我已经尝试过了——我已经编辑了这个问题。对结果没有影响
  • 你的环境中有DATABASE_URL var吗? (可以在终端输入env | grep DATABASE_URL查看)
  • @esse 宾果游戏!你想把它作为答案,我会接受。非常感谢

标签: ruby-on-rails postgresql amazon-web-services


【解决方案1】:

你的环境中可能有DATABASE_URL。您可以在终端输入env | grep DATABASE_URL 进行检查。

如果是这样,请尝试使用 unset DATABASE_URL 取消设置。

documentation中所说:

如果您同时设置了config/database.ymlENV['DATABASE_URL'],则 Rails 会将配置合并在一起。为了更好地理解这一点 我们必须看到一些例子。

当提供重复的连接信息时,环境 变量将优先。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-25
    • 2019-12-07
    • 2020-03-09
    • 2019-12-02
    • 2020-01-03
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    相关资源
    最近更新 更多