2012-05-09 3 views
1

Обучение в http://ruby.railstutorial.org/ версии 3,2Rails с дистанционным Test Postgres DB

Stucked в конце раздела 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.2 с помощью psql с 192.168.108.1

Как кошка я ее преодолел, все еще используя удаленные постгревы?

не 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 на 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 

имеют локальной pg_hba.conf на 192.168.108.1

ruby 1.9.3p125 Rails 3.2.3 PSQL (PostgreSQL) 8.4.11

ответ

1

pg_hba.conf файл на сервере PostgreSQL, чтобы определить, какие пользователи могут подключаться к каким базам данных, из которых хостов с помощью каких методов аутентификации.

http://www.postgresql.org/docs/8.4/interactive/auth-pg-hba-conf.html

Таким образом, это сообщение говорит о том, что сервер не было сказано, чтобы разрешить соединение, которое вы пытаетесь. Вы должны либо установить соединение, которое было предложено PostgreSQL, либо сообщить ему, чтобы разрешить это, обновив файл pg_hba.conf.

Если у вас нет доступа к серверу, и тот, кто этого не сделал, не предоставил вам права на соединение PostgreSQL, вы не можете подключиться. Это характер безопасности.

+0

Вы видели мою локальную базу данных.yml и мою pg_hba.conf с сервера БД? – mpugach

+0

Строки, которые вы показываете из pg_hba.conf, не отображают никаких разрешений для базы данных postgres, упомянутой в сообщении об ошибке. – kgrittn

+0

Спасибо. Не знал, что есть системная база данных «postgres». Все работает. – mpugach

 Смежные вопросы

  • Нет связанных вопросов^_^