fe_sendauth:未提供密码


75

database.yml:

# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
development:
  adapter: postgresql
  encoding: utf8
  database: sampleapp_dev  #can be anything unique
  #host: localhost
  #username: 7stud
  #password: 

  #adapter: sqlite3
  #database: db/development.sqlite3
  pool: 5
  timeout: 5000

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: postgresql
  encoding: utf8
  database: sampleapp_test  #can be anything unique
  #host: localhost
  #username: 7stud
  #password: 
  #adapter: sqlite3
  #database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: postgresql
  database: sampleapp_prod   #can be anything unique
  #host: localhost
  #username: 7stud
  #password: 
  #adapter: sqlite3
  #database: db/production.sqlite3
  pool: 5
  timeout: 5000

pg_hba.conf:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                md5
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

我将前三行中的METHOD从md5更改为trust,但是仍然收到错误。

而且无论执行什么操作时,我在database.yml中尝试执行的操作如何:

~/rails_projects/sample_app4_0$ bundle exec rake db:create:all

我总是得到错误:

fe_sendauth:未提供密码

我按照本教程进行了设置:

https://pragtob.wordpress.com/2012/09/12/setting-up-postgresql-for-ruby-on-rails-on-linux

Mac OSX 10.6.8
PostgreSQL 9.2.4 installed via enterpriseDB installer
Install dir: /Library/PostgreSQL/9.2

1
并在进行更改后重新加载了pg_hba.conf文件?
bma 2013年

@bma,您如何重新加载?我能够连接到服务器的唯一方法是使用pgAdmin3(在9.2目录中)。我选择服务器,右键单击,然后选择“连接”。因此,为了重新加载conf文件,我在pgAdmin3中与服务器断开连接,然后重新连接。
2013年

3
您可以发出一个查询:select pg_reload_conf()作为超级用户,或者在pgadmin中,您可以右键单击数据库名称,然后单击“重新加载配置”(我想就是那样,我不使用pgadmin)
bma

@bma,!$#@%!$ ^%!那行得通。您可以在评论中添加评论吗?
2013年

1
我遇到过同样的问题。我解决了将用户名:postgres和密码:放入我的database.yml
DaniloCândido18年

Answers:


66

pg_hba.confpostgresql.conf文件进行更改后,需要重新加载群集以获取更改。

从命令行: pg_ctl reload

从数据库中(以超级用户身份): select pg_reload_conf();

在PGAdmin中:右键单击数据库名称,选择“重新加载配置”

注意:重新加载不足以进行更改,例如启用存档,更改shared_buffers等-那些需要重新启动集群的更改。


2
我有一个后续问题:据我所知,我从未启动过任何服务器。我唯一要做的就是使用Mac OSX安装程序安装postgress。然后,我花了几个小时试图弄清楚如何使用postgres而不是碰运气。我刚巧在/Library/PostgreSQL/9.2目录中找到了pgAdmin3,所以我点击了它。那么服务器是如何启动的呢?我需要阻止它吗?
2013年

3
它可能是在安装程序完成安装后开始的(我见过的大多数安装程序/软件包都这样做了)
bma 2013年

1
我需要停止吗?我怎样才能做到这一点?我不喜欢安装程序,因为我习惯于使用命令行。
2013年

1
停什么 数据库集群还是安装程序?如果是后者,我不知道为什么安装程序仍会运行。
bma

4
服务器...但是我知道了。我也写了所有我所经历的步骤,在这里得到Postgres的工作与导轨:stackoverflow.com/questions/17971101/...
7stud

2

我只是将--password标志放入命令中,然后按Enter键,它要求我提供密码。


1
对我来说非常有效,只需在命令末尾添加它,然后按Enter!
ruohola

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.