2012-10-29 6 views
0

PostgreSQL 데이터베이스에 대해 Ruby on Rails를 실행하는 Windows XP 테스트 에이전트를 설정하려고합니다. Windows 용 PostgreSQL 9.2를 기본 설정으로 설치했습니다. 내가 명령 줄에서 실행하려고하면Windows XP에서 PostgreSQL을 시작할 수 없습니다.

The postgres-9.2 -PostgreSQL Server 9.2 service on Local Computer started and then stopped. Some services 
    stop automatically if they have work to do, for example, the Performance Logs and Alerts service. 

: 나는 서비스 제어판에서 서비스를 시작하려고하면 다음 오류 메시지가 (나는 그것에을 설정하려고 부적절하는 사용자의) 표시 (cmd.exe를 또는 자식 배쉬와 중요하지 않습니다 여부) :

E:\PostgreSQL\9.2\bin\pg_ctl.exe start -D E:\PostgreSQL\9.2\data 

그것은 주장 할 것이다 :

server starting 

것은 그것 (시작 갈퀴 DB를 실패합니다 그러나 : 서버로하지보고 마이그레이션실행, PostgreSQL의 프로세스가 작업 관리자에서 누락, 서비스는 서비스 목록에서 아래로 나열되며, pg_ctl를 통해 서버를 시작하는 동안

E:\PostgreSQL\9.2\bin\pg_ctl.exe stop -D E:\PostgreSQL\9.2\data 

pg_ctl: PID file "E:/PostgreSQL/9.2/data/postmaster.pid" does not exist Is server running? 

를보고합니다 :

pg_ctl: could not start service PostgreSQL: error code 1063 
,691 :

E:\PostgreSQL\9.2\bin\pg_ctl.exe runservice -D E:\PostgreSQL\9.2\data 

은 실패 363,210

편집 : pg_hba의

내용 : 여전히

local all    all    all     trust 

같은 오류가

2012-10-28 22:47:44 PDT LOG: local connections are not supported by this build 
2012-10-28 22:47:44 PDT CONTEXT: line 78 of configuration file "E:/PostgreSQL/9.2/data/pg_hba.conf" 
2012-10-28 22:47:44 PDT FATAL: could not load pg_hba.conf 

라인 78 : 아래의 의견에 따라

# TYPE DATABASE  USER   ADDRESS     METHOD 
local all    all    all     trust 
# IPv4 local connections: 
host all    all    all     trust 
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. 
#host replication  all    all     trust 
#host replication  postgres  127.0.0.1/32   trust 
#host replication  postgres  ::1/128    trust 

는 pg_log에서 확인 서비스로 실행 중일 때 발생 (pg_ctl runservic 전자 또는 서비스 제어판에서). 그러나 pg_ctl start는 이제 사고없이 postgres를 시작합니다. 내가 "충분히 좋은"

PS로 갈거야

: 이벤트 로그 항목은 단지 말은 당신은 권한 문제를 가지고 있어야합니다

+0

'E : \ PostgreSQL \ 9.2 \ data \ pg_log'를보십시오. 서버 로그는 무엇을 말합니까? 서비스로 서버를 시작한 후에도 이벤트 뷰어 (제어판의 관리 도구에서)를 검사하십시오. 이벤트 로그의 내용은 무엇입니까? –

+0

비슷한 문제를 알아 내려고 5 시간을 보냈기 때문에 :'pg_hba.conf'에 IPv6 규칙이 있고 시스템 (예 : WinXP)에서 지원하지 않으면 서비스가 시작되지 않지만 postgres를 다음과 같이 시작할 수 있습니다. 'pg_ctl'을 통한 응용 프로그램입니다. IPv6 규칙을 제거하면 문제가 해결됩니다. – Nick

답변

5

UPDATE :

local로 시작 pg_hba.conf에서 라인을 삭제합니다. 이것들은 PostgreSQL가 지원하지 않는 UNIX 소켓 연결과 관련이 있습니다. 그렇다면, 뭔가 잘못되어 있지 않으면, 당신은 PostgreSQL을 시작할 수 있어야합니다.대부분 pg_hba.conf을 복사하여 Mac OS X 또는 Linux에서 PostgreSQL에 대해 이야기하는 사이트에서 붙여 넣었습니다. local 연결이 지원됩니다.

대학원 여전히 pg_hba.conf를 해결 한 후 시작 다시 로그를 확인하고이에 대해 불평 그 밖의 무엇을보고 실패하면

. 그런데

, 일반적으로 나는 서비스로 동일한 데이터 디렉토리에서 pg_ctl를 통해 모두의 PostgreSQL을 실행하려고하지 않는 것이 좋습니다. 특히 Windows의 경우 파일 시스템 사용 권한 문제로 인해 해결이 어려울 수 있습니다.


는 @의 MVP의 제안뿐만 아니라, 당신이 Administrators 그룹의 구성원 인 사용자로 PostgreSQL을 시작하려고 가능성이 있습니다. 이것은 허용되지 않으며 실패합니다. 나는 그 방침에 동의하지 않는다. 그러나 그것은 바로 그 순간이다. 기본적 9.2으로

은 NetworkService와에서 실행되도록 설정되어 있습니다, 그래서는 문제가되지 않습니다. 다른 사용자 계정으로 실행하도록 구성한 경우이 문제가 발생할 수 있으며 수동으로 실행할 때도 문제가 될 수 있습니다.

그것은 수동으로 시작할 때 당신은 단지 데이터 디렉토리에 파일 시스템 권한을 가지고 있지 않는 것이 더 가능성이 높습니다. E:\이 FAT32 인 경우

BTW, 당신의 문제가있다. FAT32는 지원되지 않습니다. NTFS를 사용해야합니다.

어둠 속에서 찌르는 것보다는 실제로 서버 로그를보고 E:\PostgreSQL\9.2\data\pg_log 및 이벤트 뷰어를보고 이벤트가 시작되지 않는 원인을 확인해야합니다.

+0

E :는 NTFS이며 일시적으로 사용자를 벗어나기 위해 설정되었지만 서비스를 시작할 때 오류가 지속 되더라도 다시 변경하라는 메시지를 보내 주셔서 감사합니다. –

+0

@AbrahamP'pg_hba.conf'가 파열 된 것처럼 보입니다. 업데이트 된 답변보기 –

+0

해결 방법은 예약 된 작업을 사용하는 것입니다. 그러나 누군가가 서비스 주자를 고치는 방법에 관해서 어떤 아이디어라도 가지고 있다면, 나는 여전히 확실히 관심이 있습니다. –

3

"서버 시작을 기다리는 동안 제한 시간을 초과했습니다." Windows의 PostgreSQL은 postgres 사용자로 실행하려고합니다. 설치 프로그램이 자동으로 암호를 만들고 새 암호를 지정합니다.

여기에는 몇 가지 해결책이 있습니다. 이 데이터베이스를 방금 설치했다면 가장 쉬운 해결책은 Postgres를 제거하고 로컬 postgres 사용자를 삭제 (control userpasswords2 통해) 한 다음 Postgres를 다시 설치하는 것입니다 (이 상자에 관리자 권한이 있어야 함). 행운을 빕니다! 질문에 대한 편집 후

관련 문제