4. PostgreSQL 설치, SSH Tunneling
참고 : https://postgresql.kr/docs/13/
https://docs.3rdeyesys.com/database/ncloud-database-postgresql-install-connect-guide-ubuntu.html#방법1동일한-계정-생성
4.1 PostgreSQL 설치
4.1.1 레포지토리 설정
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' sudo wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
4.1.2 PostgreSQL 설치
sudo apt-get update sudo apt-get -y install postgresql-13
4.1.3 PostgreSQL 시스템 설정 및 시작
## ubuntu pw 설정 sudo passwd ubuntu sudo passwd postgres sudo systemctl enable postgresql sudo systemctl start postgresql sudo systemctl status postgresql
4.1.4 DB 접속
- postgres로 접속
sudo -i -u postgres psql ## 비밀번호 변경 alter user postgres with password 'hist1234'
4.1.5 유저 생성
create user blee password 'blee1234' superuser; \du
4.1.6 DB 생성 및 소유자 지정
create database testdb owner blee;
4.1.7 접속 시도 인증 오류
postgres@ip-10-0-147-22:~$ psql -U blee -d testdb psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "blee"
4.1.8 인증 오류 해결
- [PostgreSQL]에 접속하는 방법은 크게 2가지가 있는데 한가지씩 확인
동일한 계정 생성
- 처음에 DB 생성 후에 추가 했던 [PostgreSQL] 유저 계정과 동일한 계정을 OS 사용자에도 추가하는 방법
## root 로 들어가서 adduser sudo su - adduser blee
postgres@ip-10-0-147-22:~$ sudo -i -u blee blee@ip-10-0-147-22:~$ psql -U blee -d testdb
인증 설정 파일 수정 -> 안됨... 뭐지
- pg_hba.conf 파일을 수정
- DB 접근 설정 파일 중 local과 IPv4용 host method 항목이 각각 peer, md5로 되어있음
- peer ⇒ 운영체제에 클라이언트의 운영체제 사용자 이름과 DB 사용자 이름이 같아야됨.
- md5로 변경
## "local" is for Unix domain socket connections only local all all md5
4.1.9 Config 환경 설정 파일 위치 찾기, 내용 수정
psql -U postgres -c 'show config_file' ## /etc/postgresql/13/main/postgresql.conf sudo vi /etc/postgresql/13/main/postgresql.conf listen_addresses = '0.0.0.0' # localhost 에서 0.0.0.0 으로 변경,
4.1.10 인증시스템 관련 설정
- 위와 동일 폴더
sudo vi /etc/postgresql/13/main/pg_hba.conf ## local host -> 0.0.0.0/0 으로 변경 ## IPv4 local connections: host all all 0.0.0.0/0 trust
4.2 DataGrip 연결(SSH - Tunneling)
4.2.1 SSH Configuration
- host : bastion host ip
- port : 22(ssh)
- username : ubuntu
- Authentication type : key-pair
- private key file : *.pem
4.2.2 연결
- host : private ec2 ip
- port : 5432
- user : userid
- pw : pw(쉘에서 미리 세팅해야됨, 처음에는 없음)