[Local 서버 구축] 2-1. 로컬 DB 서버 구축 - PostgreSQL, Dbeaver

Gabi Lee·2022년 12월 9일
0
post-thumbnail

VM을 생성하고 실행해서 ip 연결까지 확인했다면 이제 각각의 vm에 web, was, db를 구축해주면 된다.

각각의 vm을 실행시킨 뒤 터미널에서 설치를 해줘도 되지만 보다 편한 인터페이스를 위해 MobaXterm이라는 프로그램을 사용하겠다.

MobaXterm에 VM 연결해서 사용하기

1. postgreSQL 설치

연결한 DB session의 터미널을 오픈하고 다음의 명령어를 입력한다.

sudo apt-get install postgresql postgresql-contrib
psql --version   		#설치확인 위한 버전 체크

제대로 설치되었다면 다음과 같이 PostgreSQL의 버전을 확인 할 수 있다.


2. 유저 및 데이터베이스 생성

sudo -i -u postgres				#psql의 기본 계정(postgres)으로 접속
createuser 생성할계정이름 -s -P 
createdb 생성할DB이름

📌
-s : 생성하는 user를 superuser로 설정
-P : pwprompt의 약어로 생성하는 user가 비밀번호를 생성할 것을 나타냄
[postgreSQL] createuser 옵션

psql		#postgresql 실행 
\du			#postgresql의 모든 계정 조회
\list		#postgresql의 모든 DB 조회

Ctrl+D 누르면 (혹은 \q 입력) psql모드 종료 가능!
마찬가지로 Ctrl+D 누르거나 logout 입력 시 postgres를 종료할 수 있다.

📌 계정과 데이터베이스를 생성했다면 상기화면과 같이 생성한 사용자계정과 DB 정보가 출력된다.



3. config 파일 수정

postgresSQL을 외부에서 접속 가능하도록 설정해준다.
이후 WAS에서 DB서버(postgresSQL)을 참조해야하므로 외부 접속을 허용해주어야 한다.

📌 config 파일에 접근할 때는 postgres 가 아닌 서버계정으로 접근한다.
📌 vi 편집기는 보기가 불편하여 vim을 설치하여 사용하였다.

sudo apt install vim

(1) postgresql.conf 수정

sudo vim /etc/postgresql/{psql버전}/main/postgresql.conf

(2) pg_hba.conf 수정

sudo vim /etc/postgresql/{psql버전}/main/pg_hba.conf

config 파일을 수정한 후에는 postgresql을 재시작한다.

sudo service postgresql restart

📌 재시작 후 config 파일이 잘 적용되었는지 확인하고 싶다면 netstat-nat 을 이용한다.

sudo apt-get update
sudo apt-get install netstat-nat	#netstat-nat 설치 	
netstat -nap | grep 5432			#postgresql의 기본 포트인 5432 listen 확인

4. 방화벽 설정

방화벽 설정에서 선택한 포트의 접속을 허용해준다.

sudo ufw status 		  	#방화벽 상태 확인
sudo ufw enable 			#방화벽 on
sudo ufw allow {port번호}	#선택한 port번호 접속 허용   	
📌 SSH의 기본 포트인 22번과 local port로 설정할 8081번을 허용해주었다.

5. DBeaver DB 연결

DBeaver 다운로드

다운받은 DBeaver를 실행한 후 구성한 postgresql을 연결한다.

(1) 좌측 상단의 데이터베이스 추가 버튼 클릭

(2) DB 연결 정보 입력 후 test connection 클릭

📌
Host : 서버의 IPv4 주소
Database : postgresql에 생성한 DB 이름
Username & Password : postgresql에 생성한 계정 정보


로컬 DB 연결 완료 !


Dbeaver에 구성한 로컬서버로 연결이 된 것을 확인 할 수 있다 😊

[DBeaver] 연결한 DB에 기존 데이터를 복제하려면?

0개의 댓글