【问题标题】:"no password supplied" in Rails 4 using establish_connection在 Rails 4 中使用建立连接“没有提供密码”
【发布时间】:2013-08-31 22:21:09
【问题描述】:

我必须连接到旧数据库才能将数据导入我的新系统,这不是我以前做过的事情,所以我很感激有人能帮助我理解我在某处出错的设置。

我可以从命令行轻松连接到遗留数据库,无需密码:

$ /usr/local/bin/psql -V
psql (PostgreSQL) 9.2.4
$ /usr/local/bin/psql -U adminuser -p 15432 legacydb
psql (9.2.4, server 8.4.5)
WARNING: psql version 9.2, server version 8.4.
         Some psql features might not work.
Type "help" for help.

legacydb=# select count(*) from atable;
 count 
-------
  1005
(1 row)

legacydb=# \q
$

所以在我的 Rails 应用程序中,我以这种方式定义了 app/models/atable.rb:

class Atable < ActiveRecord::Base

establish_connection(
  :adapter => "postgresql",
  :host => "localhost",
  :port => 15432,
  :username => "adminuser",
  :database => "legacydb"
)

end

但是当我尝试检索某些内容时,我得到了无密码错误:

rails c
Loading development environment (Rails 4.0.0)

2.0.0-p247 :002 > t = Atable.first
PG::ConnectionBad: fe_sendauth: no password supplied

我的错误是什么?

【问题讨论】:

    标签: ruby-on-rails-4 postgresql-9.2


    【解决方案1】:

    我无法弄清楚如何让 Rails 允许使用空白密码,所以我让数据库管理员添加一个带有密码的新用户/角色。将这些信息替换为 :username => "foo" 和 :password => "bar" 允许 Rails 与数据库通信,我可以正常检索记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-12
      • 2016-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-14
      • 1970-01-01
      • 2013-03-02
      相关资源
      最近更新 更多