외부 데이터 설정에 장장 일주일을 넘게 시간을 쓰고 있다.
덕분에 다른 코딩 관련은 손도 못 대고 있다. 할 게 많은데. 으으으.
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초 만에 잘 설명된 블로그를 찾았다. 대한민국 개발자 만세.
이곳을 참고해서 투닥투닥 입력해보자
우선 아까도 했지만 혹시 모르니 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개 정도 열고 닫았다.
하지만 처음부터 찬찬히 글을 보면서! 해보니 그리 어려운 것도 아니었다는 생각이 든다.
알고 있다. 이건 오만이다.
하지만 그래도... 성공한 날 저녁만큼은 이래도 괜찮다. 수고 많았다.
'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 |