현재 윈도우 계정은 administrator입니다.
postgres 설치폴더\bin에서
>postmaster -S -i -D ../data 명령을 치면 administrators not permmited ..어쩌구 하고 나오는데요
postgres는 postgresql-8.0-beta1-20040809.msi(windows버전) tcp/ip 연결옵션을 -i 로 enabled 되게 하는 법좀 알려주세요
- 김상기 ioseph
유닉스와 마찬가지로 일단 DB 서버를 운영할 시스템 사용자가 필요합니다.
쉘 명령 프롬프트 (cmd 창)에서 net user 명령이나, 컴퓨터 관리에서 사용자 추가로 postgresql 서버를 운영할 사용자를 만듭니다. 예를 들어서 유닉스에서 처럼 postgres
> net user postgres 1234 /add
cmd 창에서 runas 명령을 이용해서 앞에서 만든 db 서버를 운영할 사용자(여기서는 postgres로 했습니다)로 새 cmd 창을 띄웁니다.
> runas /user:postgres cmd
이 명령이 실행되면 암호를 물어봅니다. 앞에서 암호를 1234로 지정했으니, 그렇게 하면 되겠지요.
다운 받은 압축파일을 c:\pgsql 폴더에 풀었다고 가정하고, 그 폴더로 이동하면, bin\initdb.exe 파일 있습니다. 이 명령을 실행해서 새로운 db 클러스터를 만듭니다. 만드는 방법은 유닉스에서와 완벽하게 동일합니다.
> cd \pgsql
> bin\initdb -D data -E unicode --no-locale
-D 옵션은 만들어질 데이터 디렉토리를 지정하는 것이고, 윗 예제라면, c:\pgsql\data 가 됩니다.
-E 옵션은 데이터베이스의 기본 문자셋을 지정하는 것이고, 한국어를 가장 잘 처리하는 것이 unicode (utf-8) 밖에 없는지라, 이 문자셋을 사용합니다.
--no-locale 옵션은 한국어 정렬관련과 인덱스 관련 때문에 지정해 줍니다.
새로 만들어진 data 폴더 안에 서버 환경 파일인 postgresql.conf 파일이 있습니다. 이 파일을 약간 수정해 주어야 합니다. 변경되는 값은 listen_addresses (외부에서 접속을 가능하게 하려면, '*' 또는 해당 시스템의 외부용 공식 ip여야합니다.)
listen_addresses = '*' # what IP interface(s) to listen on; # defaults to localhost, '*' = any
또한 외부에서 이 서버로 접속을 하려면, data 폴더 안의 pg_hba.conf 파일도 수정해야하는데, 이부분에 대한 이야기는 메뉴얼을 참조하세요.
(M$ 쪽으로 보다 쉽게 움직이려면, 이 postgresql.conf 파일과, pg_hba.conf 파일을 비주얼하게 편집할 수 있는 툴이 나와야겠다는 생각이 드네요)
새 데이터베이스 클러스트가 다 만들어졌으면, 이제 db 서버를 시스템이 켜지면 자동으로 실행되도록 윈도우즈 서비스로 등록해 둡니다. 이 작업은 postgres 계정이 아닌, 관리자 계정이어야합니다.
> c:\pgsql\bin\pg_ctl register -N postmaster -U postgres -P 1234 -D c:\pgsql\data
다음 postgres 계정이 서비스를 가동할 수 있는 권한을 부여해 주어야합니다. 이 작업도 관리자 권한으로 실행합니다.
> mmc c:\windows\system32\secpol.msc
명령으로 '로컬 보안 설정' 창이 나타나면, 거기서 로컬 정책 -> 사용자 권한 할당 영역으로 이동한 다음, '서비스로 로그온' 항목을 더블 클릭해서 편집 대화창을 띄우고, 앞에서 서비스로 실행시킬 사용자를 추가해 줍니다.
시스템 관리자 권한으로 명령창에서 net start 명령으로 단순히 실행하면 됩니다.
> net start postmaster
여기서 postmaster 는 앞에서 pg_ctl register 명령에서 -N 옵션으로 지정한 이름입니다.
여기까지입니다. 특별한 문제가 없다면, 자연스럽게 가동될 것입니다. 잘 가지고 놀아보시고, 문제점들이 발견되면 DSN 게시판을 통해서 논의해 봅시다.
GUI 툴로는 PgAdmin3 프로그램을 다운 받으셔서 테스트 해보시면 됩니다.
그래서 늘 해왔듯이, psql 놈으로 테스트를 해보셔도 좋구요.
> c:\pgsql\bin\psql -U postgres template1
답변 정말 감사드려요.추운겨울 잘 지내세요 ^^