PostgreSQL身份验证失败

时间:2014-09-22 14:45:04

标签: postgresql sinatra

这是我的 database.yml

development:
  adapter: postgresql
  database: myUsername
  username: myUsername
  password: myPassword
  host: localhost

因此,当我转到我的本地页面时,不会显示任何错误。如果我将 database.yml 中的密码更改为不正确的密码,我会

PG::ConnectionBad: FATAL: password authentication failed for user "myUsername" FATAL: password authentication failed for user "myUsername"

错误。因此,我的密码是对的。

但是,当我跑步时

rake db:migrate

无论我的密码是对还是错,我都会收到错误。如果是的话,我会收到以下错误:

PG::ConnectionBad: fe_sendauth: no password supplied

如果错了,我会收到与本地页面相同的错误:

PG::ConnectionBad: FATAL: password authentication failed for user "myUsername" FATAL: password authentication failed for user "myUsername"

是什么原因导致它认为正确的密码“未提供”?如果您有任何帮助或信息,我现在已经搞了两天了。

2 个答案:

答案 0 :(得分:0)

  1. 通过信任更改 md5 ,通过 gedit 编辑pg_hba.conf作为 root用户,请参阅此处{{ 3}}对于可能出现的一些问题
  2. sudo service postgresql restart
  3. 重新启动本地服务器
  4. 如果您的密码与用户名匹配,则应该可以使用。

答案 1 :(得分:0)

有两个步骤可以连接到PostgreSQL:

  1. 设置postgres用户的密码
  2. 更改postgres用户的密码

1。为postgres用户设置密码

在Linux系统上,没有设置默认密码。

要设置默认密码:

从postgres用户帐户运行psql命令:

sudo -u postgres psql postgres

设置密码:

\password postgres

输入密码。

关闭psql。

\q

2。更改postgres用户的密码

如果您不知道用户密码

从postgres用户帐户运行psql命令:

sudo passwd postgres

输入密码。

要测试并确认密码,请从postgres用户帐户运行psql命令:

su - postgres

输入您刚刚设置的新密码。

就是这样。

我希望这对您有帮助

在有帮助的情况下将此答案赞为有用,或在答案下方评论以进一步说明。