postgresql 삽질기;;
By SeukWon Kang
세상의 모든 삽질이 그러하듯이, 무릇 삽질이란;;;누군가의 바보스러움때문에 발생하기 마련인데..그중에 가장 우울한것이 자신의 한심스러움 때문에 일어나는 삽질이다.ㅠㅠ 요즘 대세는 mariadb 라고 외치고 다니고 있던 중..( 정작 쓰지는 않는 주제에 ;; ) 아기다리 고기다리 던(언제쩍 개그냐 이거;; )postgresql이 9.x 대에와서 드디어 쓸만해졌다!! 란 소리를 듣고… 그러면 나도 잠깐 들여다 볼까? 하고 생각한 지 어어 2달 ;;; mysql/mariadb 와는 달리 이놈의 postgres는 우분투/민트 의 레포지토리에서 설치를 해도바로 사용 가능한 상태로 설치 되지를 않더군요;; 일단 설치를 해두고..어 9.2가 최신 버전인데 레포지토리에 없네? 하면서ppa 까지 추가해서 server/client/pgadmin3에 오오.. plpython이 있네 하고 이것 까지 설치는 해 두었지만.. 이상하게도 pgadmin3를 사용해서 postgres 에 접속할수가 없는 겁니다. ;; 게다가 설치하면서 db 관리자 암호를 물어 보지도 않고 말이지요.;;; 뭐 어쩌란 거냐!! 하고 대충 문서를 찾아 하란 대로 (실은 제멋대로) 해봐도 잘안되고.. 결론만 말하면 mysql과는 admin에 대한 개념이 좀다르다.. 입니다. postgres는 일단 관리용 system 계정 postgres 를 만들고이 계정으로 로그인 해서 모든 관리 업무를 한다는 가정으로 만들어 져 있습니다. ( 아마도 고전적인 unix용 서비스의 관리형태가 아닐까 싶군요. ) 그런데 정작 우분투/민트에서는 이 postgres 로 로그인을 할수 없습니다. / 하면 안됩니다. ;;; 꼬박 꼬박 sudo -u postgres 를 사용해서 작업 해야 합니다.( 뭐 보안 상의 이유 겠지요. ) 그리고 command-line 관리툴의 이름이 이상한데 ( 왜 이렇게 만들었는지 모르겠습니다. ) createuser / dropuser 입니다. db admin툴 내부에 들어가서 사용하는 명령이 아니고 그냥 터미널용 명령입니다. dropuser야 그렇다고 해도 ( 맘에는 안들어도.. ) createuser 라니.. 누가봐도 시스템에 계정을 추가하는 명령으로 착각하기 딱좋은 이름아닌가요. –+ 정리하는 차원에서 순서를 적으면 ppa 추가 ( 원하면 ) apt-get / synaptic 에서 설치/etc/postgresql/9.x/main/postgersql.conf 수정 제경우는listen_addresses = ’localhost’ password_encryption = on만 수정 sudo -u postgres createuser -d -W 사용할DB계정이름 ( -d : db 생성 가능 , -W : 암호 입력 받음 )
** password_encryption 를 켠 탓인지 모르겠지만.. 이 방법으로는 정상적으로 암호 설정이 안되는 것 같습니다. 반드시 psql로 들어가서 암호를 설정해야 하는듯..
( 또는 sudo -u postgres psql 로 command line 관리툴 실행 alter user 사용할DB계정이름 password ‘사용할암호’ ; ctrl-d 로 종료 ) ** 여기서 또 한참 헤맨것이 맨 마지막의 ; 빼먹어서 고생했습니다.;;
pgadmin3 를 그냥 실행 ( sudo -u postgres 를 사용하지 않고.. ;;; ) 반드시 방금 만든 DB계정으로 접속 기본 관리 계정인 postgres 로는 이상하게 접속 이 않되더군요. 뭐 보안 때문이겠지만.. 그리고 주의할점이 이상하게도 postgres 기본 설정파일의 tcp port는 5433 인데 pgadmin3에서 기본으로 입력되어 있는 port는 5432 입니다. ( 이건 뭐 낚시도 아니고. ;; )
아무튼 이 과정을 거치면 (써놓고 보니 별것도 없네요. ;; ) 드디어 postgres를 GUI 로 접근해서 볼수 있습니다. ;;
전반적인 느낌은 대충 쓰려는 놈은 쓰지마라.. 기본 설정으론 작동 않됨 엔터 연타로 사용하려는 넘은 사용 금지.. 같은 까칠함이 느껴집니다. ;;;