在http://ruby.railstutorial.org/版本3.2学习
在6.2.1节末尾插入以下内容:
$ bundle exec rake db:test:prepare
rake aborted!
FATAL: no pg_hba.conf entry for host "192.168.108.1", user "sample_user", database "postgres", SSL on
FATAL: no pg_hba.conf entry for host "192.168.108.1", user "sample_user", database "postgres", SSL off
Tasks: TOP => db:test:load => db:test:purge
192.168.108.1是我的IP。如果我在database.yml中有另一个条目,为什么要查找它? 用户sample_user是所有数据库的所有者,并且具有CREATEDB。 我可以通过192.168.108.1的psql成功连接到192.168.108.2上的任何数据库
我是如何克服它的,还是使用远程postgres?
的Gemfile
source 'https://rubygems.org'
gem 'rails', '3.2.3'
gem 'bootstrap-sass', '2.0.0'
gem 'pg', '0.12.2'
group :development, :test do
gem 'rspec-rails', '2.9.0'
end
group :assets do
gem 'sass-rails', '3.2.4'
gem 'coffee-rails', '3.2.2'
gem 'uglifier', '1.2.3'
end
gem 'jquery-rails', '2.0.0'
group :development do
gem 'annotate', '~> 2.4.1.beta'
end
group :test do
gem 'capybara', '1.1.2'
gem 'spork', '0.9.0'
end
的database.yml
common: &common
adapter: postgresql
username: sample_user
password: qwerty123
host: 192.168.108.2
development:
<<: *common
database: sample_db_dev
test:
<<: *common
database: sample_db_tst
production:
<<: *common
database: sample_db_pro
pg_hba.conf on 192.168.108.2
host sample_db_dev sample_user 192.168.108.1/32 md5
host sample_db_tst sample_user 192.168.108.1/32 md5
host sample_db_pro sample_user 192.168.108.1/32 md5
在192.168.108.1上没有本地的pg_hba.conf
ruby 1.9.3p125 Rails 3.2.3 psql(PostgreSQL)8.4.11
答案 0 :(得分:1)
pg_hba.conf是PostgreSQL服务器上的一个文件,用于定义允许哪些用户使用哪种身份验证方法连接到哪些主机的数据库。
http://www.postgresql.org/docs/8.4/interactive/auth-pg-hba-conf.html
因此,该消息告诉您服务器尚未被告知允许您尝试的连接。您必须建立PostgreSQL允许的连接,或者通过更新pg_hba.conf文件告诉它允许这个连接。
如果您无法访问服务器,并且没有选择授予您PostgreSQL连接权限,则无法连接。这就是安全的本质。