동일한 서버에 호스트 된 포스트그레스를 사용하여 원격 서버에 샘플 레일즈 애플리케이션을 배포했습니다. database.yml 파일은 다음과 같습니다.다른 서버에있는 데이터베이스의 IP 주소를 설정하십시오.
production:
adapter: postgresql
encoding: unicode
database: remotepg_production
pool: 5
host: localhost
username: mrmann
password: secret
모든 것이 정상적으로 작동합니다. 나는 다음 database.yml을 파일로 가서 내가 레일 응용 프로그램을 사용하여 서버에 포스트 그레스를 다시 시작하면이
production:
adapter: postgresql
encoding: unicode
database: remotepg_production
pool: 5
host: 178.XXX.XXX.XXX #ip address of server with other postgres database
username: mrmann
password: secret
같은 다른 서버 host: 178.XXX.XXX
에 포스트 그레스 데이터베이스의 IP 주소로 host: localhost
교체, 샘플 응용 프로그램은 이제 준 레일스에 대한 '무언가 잘못 됐어'페이지.
사용자 이름의 사용자 이름과 암호는 두 dbs에서 동일합니다. 문제가 무엇인지 제안 해 주시겠습니까? 감사합니다
업데이트
이 내가 연결하려는 데이터베이스 서버에있는 pg_hba.conf의 설정은 다음과 같습니다.
local all postgres peer
local all all peer
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
가짜 레일 응용 프로그램 IP : 192.241.XXX.X
가짜 데이터베이스 IP : 192.34.XX.XXX
데이터베이스 로그에 액세스 할 수 있어야하지만 어디에서 찾을 수 있습니까 (도움이 될 수 있습니까?). 레일즈 애플리케이션을 호스팅하는 서버의 pg_hba.conf에 데이터베이스의 IP를 추가해야한다고 사용자의 지침에서 가정하거나 레일스 애플리케이션을 호스팅하는 서버의 IP를 pg_hba.conf에 추가하려고 했습니까? 여분의 데이터베이스와 서버의? – Leahcim
필자가 설정 한 로그 위치는''current_setting ('data_directory') || '/'|| current_setting ('log_directory');'에 있으며, 아마도 그 경로가 로그로 연결됩니다. – bma
'/ etc/postgresql/9.1/main/postgresql.conf'에, 난 그냥 listen_address로 레일 애플 리케이션과 서버의 IP 주소를 설정합니다. 이제 끝났어. 그러나 postgres를 다시 시작하려고했을 때'2013-07-25 17:10:35 UTC 로그 : IPv4 소켓을 바인드 할 수 없습니다 : 요청한 주소를 할당 할 수 없음 2013-07-25 17:10:35 UTC 힌트 : 다른 것이 postmaster는 이미 포트 5432에서 실행 중입니까? 그렇지 않은 경우 몇 초 후에 다시 시도하십시오. 2013-07-25 17:10:35 UTC 경고 : "178.XXX.XXX"의 청취 소켓을 만들 수 없습니다.X " 2013-07-25 17:10:35 UTC 치명적 : TCP/IP 소켓을 만들 수 없음' – Leahcim