본문 바로가기
lean/life

postgres로 갈아타기

by mattew4483 2020. 11. 16.
728x90
반응형

외부 데이터 설정에 장장 일주일을 넘게 시간을 쓰고 있다.

덕분에 다른 코딩 관련은 손도 못 대고 있다. 할 게 많은데. 으으으.

mysql은 도저히 가망이 없다고 판단, postgres로 넘어가기로 결정했다.

과연 이 녀석은 잘 될지. 천천히 해보기로 한다.


일단 필요한 구성요소들을 설치해주자.

sudo apt-get update

sudo apt-get install libpq-dev

sudo apt-get install python3-psycopg2

sudo apt-get install postgresql

요놈들을 신나게 설치!

 

완료되었다면 sudo -u postgres psql 을 통해 관리자 계정(postgres)으로 들어가자.

그럼 이렇게 postgres 스러운(?) 입력창에 들어오게 된다(mysql과 굉장히 유사하네).

 

잘 들어왔다면

ALTER USER postgres WITH ENCRYPTED PASSWORD '비밀번호' ;

이 친구로 root계정(이름이 postgres)의 비밀번호 변경해주자.

ALTER ROLE이라는 문구가 떴다면 성공.

 

완료했다면 db에 접근할 유저와 유저 소유의 db를 만들어주자.

CREATE USER 유저이름 WITH ENCRYPTED PASSWORD '비밀번호'-- 유저 생성

CREATE DATABASE 데이터베이스이름 OWNER 유저이름;  -- 유저 소유 데이터베이스 생성

GRANT ALL PRIVILEGES ON DATABASE 데이터베이스이름 TO 유저이름;  -- 유저에게 모든 권한 부여

이렇게 잘 떴다면 Ctrl+D로 밖으로 빠져나온 후,

sudo /etc/init.d/postgresql restart 를 통해 postgres를 재시작하자.

 

생성한 데이터베이스와 유저가 궁금하다면 postgres실행화면에서 \l 을 입력해보자.

(데이터 베이스에 접근하고 싶다면 \c db_name 입력)

hangyo_deploy라는 데이터베이스와 lee라는 유저가 잘 만들어진 것을 볼 수 있다. 얏호!


다음으로는 이렇게 만들어진 데이터베이스와 우리의 친구 django를 연결해줘야 한다.

mysql의 경우 settings에서 database부분에 관련 요소들을 넣어주면 됐는데, postgres도 비슷하지 않을까?

하는 기대를 가지고... 구글링을 시작한다.

 

5초 만에 잘 설명된 블로그를 찾았다. 대한민국 개발자 만세.

leop0ld.tistory.com/59

이곳을 참고해서 투닥투닥 입력해보자

 

우선 아까도 했지만 혹시 모르니 sudo apt-get update

이후 pip install psycopg2 를 통해 psycopg2도 설치해주자.

완료됐다면 설치 끝! 이제 django에 settings를 수정하자.

 

DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.postgresql_psycopg2',

        'NAME': '데이터베이스이름',

        'USER': '유저이름',

        'PASSWORD': '패스워드',

        'HOST': 'localhost',

        'PORT': '5432',

    }

}

 

아래처럼 입력하면 되는데, 여기서 포트번호가 갑자기 헷갈려졌다.

postgres가 깔려있는 줄 모르고 두 번째 깔았을 때는 포트번호가 5433?이었는데...

실패하면 또 성질만 나니 안전하게 검색하기로 한다.

ubuntu실행포트에 pg_lsclusters 를 입력하면 초록색 글씨로 어쩌고 저쩌고가 나온다.

설치 경로인 듯한데, 앞에 누가 봐도 포트 번호인 글씨가 써져있다. 나의 경우는 5432(postgres의 기본 포트라고 한다).

이까지 잘 연결했다면, 이제 AWS로 떠나자.


AWS와 postgres를 연결하기 위해서는 AWS에서 해당 포트를 열어줘야 한다.

그런데 당최 어디서?

우선 왼쪽 메뉴바에서 네트워크 및 보안 - 보안 그룹 에 들어간다.

그럼 서버를 열 때 생성했던 보안 그룹들이 쪼르르 나온다. 내 경우는 hangyo_deploy.

해당 보안 그룹을 클릭하면 하단에 정보가 나오는데, 인바운드 규칙 - 인바운드 규칙 편집 을 클릭한다.

 

그럼 외계어들이 줄줄이 쓰여있다. 기존에 생성된 것들은 가만히 두고, 규칙추가에서 PostgresSQL을 선택하자.

두 개를 추가해 옆에 있는 숫자들을(뭔지는 모르겠다) 0.0.0.0/0::/0 도 선택.

완료되었다면 규칙추가 를 누르고 빠져나오면 된다.


약 10일간의 기나긴 여정이 끝났다.

글에는 적지 않았지만 사소한 실수(오타, 설치 위치 오류 등) 때문에 새 서버를 6개 정도 열고 닫았다.

하지만 처음부터 찬찬히 글을 보면서! 해보니 그리 어려운 것도 아니었다는 생각이 든다.

알고 있다. 이건 오만이다.

하지만 그래도... 성공한 날 저녁만큼은 이래도 괜찮다. 수고 많았다.

728x90
반응형

'lean > life' 카테고리의 다른 글

실패는 나의.  (2) 2020.11.18
Letsencrypt 로 HTTS 연결하기  (0) 2020.11.17
끝나지 않는 mysql  (0) 2020.11.16
대패 한 판 더.  (0) 2020.11.14
한 문장으로.  (0) 2020.11.11