【发布时间】:2019-02-21 13:40:15
【问题描述】:
我尝试设置 postgres 数据库并在执行“rake db:schema:load”时遇到以下错误。因此,rails 似乎尝试使用 unix 套接字连接到我的数据库,而不是我已配置的 tcp/ip(请参阅下面的 database.yml)。我不明白为什么会这样。我偶然发现了以下线程,它确认我已经正确设置了我的 database.yml。 click here。一个想法是在 postgres 配置中更改方法:peer for type: local to md5。但是,据我了解 postgres 配置,我的第二行应该可以完成这项工作。此外,另一个 Rails 应用程序使用 tcp/ip 在同一台服务器上运行,所以我希望 psql 配置是正确的。我还比较了 database.yml 文件,它们是相同的
[root@myserver app]# rake db:schema:load
-- enable_extension("plpgsql")
-> 0.0166s
-- create_table("qip_changes", {:force=>:cascade})
-> 0.0494s
-- create_table("users", {:force=>:cascade})
-> 0.0539s
-- add_foreign_key("qip_changes", "users")
-> 0.0037s
-- enable_extension("plpgsql")
rake aborted!
PG::ConnectionBad: FATAL: Peer authentication failed for user "my_user_name"
pg_hba.conf:
# TYPE DATABASE USER ADDRESS METHOD
local all all peer
host all all 127.0.0.1/32 md5
数据库.yml:
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: my_db_name
username: my_user_name
password: my_password
host: localhost
port: 5432
test:
<<: *default
database: my_db_name
username: my_user_name
password: my_password
host: localhost
port: 5432
production:
<<: *default
database: my_db_name
username: my_user_name
password: my_password
host: localhost
port: 5432
【问题讨论】: