왜 싸웠는고 하면.. 이 녀석이 데이터베이스인데 설치가 안되는 것이었다. service로 등록해서 사용(설치할 때 체크하는 부분이 있음)하도록 설치를 하는데 파일 복사를 다 하고는 마지막에 서비스(Windows Service)로 등록이 되질 않는 것이다. 꺄윽~~ 아래와 같이 "Service 'PosgreSQL Database Server 8.3' (pgsql-8.3) failed to start. Verify that you sufficient privileges to start system services."라는 메시지 오류창 하나를 띵~하고 내놓고는 아무것도 되질 않는다. retry를 클릭하면 저 창이 계속 뜨고, cancel을 클릭하면 설치가 취소되면서 롤백(roll back)이 되는 것이다 TㅅT
우선, 저 구문으로 이게 무슨 오류인지 찾았다. "Windows Installer Error Code 1920"이며, "Windows Event ID 11920"과 함께 발생한다. "Windows Event ID 11920"은 "Msi Installer (Microsoft Installer)"에서 발생하며 종류는 에러(error)이고, "Product: <product> -- Error 1920. Service '[2]' ([3]) failed to start. Verify that you have sufficient privileges to start system services."라는 description을 가지고 있다. 한 마디로 다시 얘기하자면 Windows 서비스 등록이 실패했다는 것이다.
또
위와 같은 오류를 뱉고는 설치가 되지 않는 이유는 주로 Anti Virus와 방화벽, 그리고 사용자 계정의 권한이 가장 큰 요인이라고 한다. Anti Virus 제품들이 설치되어 있는 경우는 Anti Virus를 잠시 중지시키거나 설치하는 폴더만이라도 작동을 중지시키고, 그래도 안되면 삭제 후 설치하라고 한다. 방화벽도 Anti Virus와 마찬가지이다.
이번에 설치하는 곳은 랩탑이고 회사 내부에서만 사용하느라 Anti Virus도 없었다. 그런데 안되는 것이다 TㅅT 그럼 다음 원인으로 보이는 권한 부족!! PostgreSQL은 (일반적으로) 설치하고 서버를 실행할 때 postgres라는 계정을 만들어 사용한다. 이 계정이 실행하기 위해 서비스를 등록할 때는 몇 가지 권한을 가지고 있어야 한다.
1. 사용자 계정(postgres)이 서비스(Windows Service)를 제어할 수 있도록 권한을 부여한다.
1.1. "제어판 -> 관리 도구 -> 로컬 보안 정책"을 클릭하면 "로컬 보안 설정"창이 뜬다. ("시작 -> 실행"을 클릭하고 "secpol.msc"를 입력해도 된다.)
1.2. 이 창의 좌측에서 "보안 설정 -> 로컬 정책 -> 사용자 권한 할당"을 선택하면 오른쪽에
1.3. "서비스로 로그온 (log on as a service)" 항목이 보일 것이다. 여기에 사용자 계정 (postgres) 추가한다.
이 과정은 이 문서 5페이지에 잘 정리되어 있다.
아직도 설치가 되지 않는 경우가 있다. Windows XP pro, 2000, 2003 등에서 발생할 수 있으며, Windows Home edition은 발생하지 않는다.
2. 원인은 사용자 마다 폴더에 접근할 수 있는 권한을 따로 설정할 수 있게 되어 있어서이다. 그렇다면 PostgreSQL을 설치하면서 추가한 사용자 계정(postgres)에게도 권한을 부여해야지..
2.1. 탐색기를 연다.
2.2. 위의 메뉴 중에 "도구(T) -> 폴더 옵션(O)..."을 선택하면 아래와 같은 "폴더 옵션"창이 뜬다.
2.3. "보기"탭을 선택하면 중간에 "고급 설정"에 아래 그림과 같이 "모든 사용자에게 동일한 폴더 공유 권한을 지정(권장)"이라는 부분이 보일 것이다. 이 부분에 체크가 없는 사람만 아래와 같은 방법을 이용할 수 있다. 미안하지만 여기에 체크가 되어 있는 사람은 모르겠다 TㅅT
2.4. 체크가 되어 있지 않다면, 취소를 선택하고 윈도 설치 폴더("C:\Widows" 혹은 "C:\WINNT" 등)를 오른쪽 클릭하여 속성(R)을 클릭하여 아래와 같은 "폴더 등록 정보"창을 띄운다.
2.5. "보안"탭을 선택하고 추가(D)버튼을 클릭하여 사용자 계정(postgres)을 추가하고 "읽기 및 실행" 권한을 부여한다.
2.6. ta da~ 자.. 이제 설치가 가능할 것이다.
아~~ 해결하고 난 뒤의 이 달콤함이란.. 역시 이 맛에 개발자를 하는건데 이건 너무 오래 걸렸다. 자료가 너무 없어서 TㅅT 그런데 오늘은 벌써 저녁을 먹어서 야근을 해야 한다는거!! TㅅT 이렇게 곰방 찾을 줄 알았으면 저녁 먹지 말고 칼퇴근 하는건뒈~~ TㅅT
댓글 없음:
댓글 쓰기