Postgresql 12 버젼을 우분투 18.04 에 설치 설정
Postgresql 12 설치
아래 명령으로 /etc/apt/sources.list.d 디렉토리에 pgdg.list 파일을 만들어 Postgresql 저장소를 추가한다.
sudo echo "deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
우분투 버전이 18.04가 아닐 경우에는 ‘bionic’ 을 해당 우분투 버전이름으로 변경할것.
우분투 버전별 이름 (Postgresql 저장소에 존재하는 것만)
12.04 LTS precise
14.04 LTS trusty
16.04 LTS xenial
18.04 bionic
18.10 cosmic
19.04 disco
19.10 eoan
저장소 인증키를 추가
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
apt update / Postgres-12를 인스톨
sudo apt update sudo apt install postgres-12
유저 추가
아래 커맨드 중 elmitash 부분을 사용하고 싶은 아이디로 바꿀것.
postgres 유저로 바꾼 후, 새로운 유저를 추가
패스워드를 두번 입력
sudo su - postgres createuser --pwprompt --interactive elmitash
Shall the new role be a superuser? (y/n) y
y를 입력해 관리자 권한을 준다
접속 테스트
psql -h localhost -U elmitash -d postgres
외부 접속
postgresql.conf 파일을 수정
sudo nano /etc/postgresql/12/main/postgresql.conf
아래 부분을 찾아 주석 해제하고 localhost 를 * 로 바꾼다. 특정 IP에서만 접속할 경우엔 IP 주소를 쓰면 된다.
#listen_addresses = 'localhost' # what IP address(es) to listen on; >> listen_addresses = '*' # what IP address(es) to listen on;
pg_hba.conf 파일을 수정
sudo nano /etc/postgresql/12/main/pg_hba.conf
접속 인증을 할 IP 범위를 설정하기 위해서 아래 내용을 추가한다. 내부 네트웍일 경우 아래 내용에서 아이피 정도만 바꾸면 될듯.
host all all 192.168.1.1/24 md5
설정을 마쳤으면 Postgresql 서비스 재시작
sudo service postgresql restart
문제 해결
이놈의 방화벽… 진짜…
iptables 의 경우 숫자 6은 sudo iptables -L 로 확인해서 수정할 것.
sudo iptables -I INPUT 6 -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
ufw 의 경우는 간단.
sudo ufw allow 5432/tcp sudo service ufw restart
오라클 클라우드는 인스턴스의 보안 목록에 수신 규칙을 추가해야한다. TCP의 5432번 포트를 개방.
관련 글: DB서버 외부에서 안전하게 접속하는 방법. DBeaver로 SSH 터널링 접속