본문 바로가기

프로그래밍

centos에 postgre9.6설치하고 윈도우에서 포트포워딩으로 접속하는법

먼저 ping 명령어를 날려서 네트워크가 정상으로 동작하고 있는지 확인한다.

ping www.naver.com

네트워크가 정상적으로 동작하지 않으면 네트워크 설정이 안 된 것이니 밑에 경로로 이동한다. 그리고 vi 를 이용하여서 파일을 수정을 한다. 맨 밑에 글자를 바꿔주면 된다.

cd /etc/syscinfig/network-scripts

 

vi ifcfg-enp0s3

맨 밑에

ONBOOT=no를 ONBOOT=yes로 바꿔준다. 만약에 해당 글자가 없으면 새로 써주면 된다.

그 다음 다시 ping www.naver.com 을 하면 정상적으로 응답이 된다. 

 

리눅스에 방화벽을 설치한다.

sudo yum install firewalld

방화벽을 시작한다.

sudo systemctl start firewalld

 

여기서 알아야 할 것은

원격 서버에 ssh프로토콜을 이용하려면 22번 tcp포트가 방화벽에서 열려 있어야 하고 ssh서버 프로그램이 설치, 구동되고 있어야 한다. 

 

우선 방화벽을 설정하겠다. 방화벽에서 22포트를 허용하는 것을 설정해주어야한다. 잘 완료가 되면 success라고 나온다.

sudo firewall-cmd --zone=public --add-port=22/tcp --permanent

방화벽 서비스 중에 ssh를 추가한다. 그리고 4444 포트를 오픈한다.

sudo firewall-cmd --permanent --add-service=ssh
# sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --permanent --add-port=4444/tcp

http, https, smtp 서비스도 추가한다.

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=smtp

서비스를 볼 수 있다.

sudo firewall-cmd --get-services

 모든 리스트를 볼 수 있다.

sudo firewall-cmd --permanent --list-all

 

다시 방화벽을 재기동한다.

sudo firewall-cmd --reload
sudo systemctl restart firewalld

 

 

 

밑에 환경설정 파일에 가서 postgresql 관련한 내용(빨간색 표시)을 넣어준다.

sudo vi /etc/yum.repos.d/CentOS-Base.repo

주소가 잘못된 것들이 많아서 찾는데 헤맸는데 밑에 주소로 다운을 받았다.

sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

모두 y를 누르면서 엔터를 치면 된다.

yum list postgresql*

모두 y를 누르면서 엔터를 치면 된다.

sudo yum install postgresql96-server

 

sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
sudo systemctl enable postgresql-9.6
sudo systemctl start postgresql-9.6
sudo -i -u postgres

밑에 명령어로 postgre에 접속한다.

psql

밑에처럼 역슬래시q를 하면 쿼리문 작성에서 빠져나온다. 그 다음 아예 빠져나오고 싶으면 exit를 하면 된다.

\q

 

 

 

다음으로  윈도우에서 postgres에 접속해서 쓰려면 ssh연결을 해줘야한다. 우선 밑에 파일로 가서 포트22의 주석을 풀어준다.

vi /etc/ssh/sshd_config

ifconfig를 해서 ip를 확인하려 했지만 당황스럽게도 ifconfig가 되지 않는다. 찾아보니 net-tools을 설치해주어야 한다고 하여 설치했다.

yum install net-tools

이렇게 확인하면 ip주소를 확인할 수 있다.

ip 주소를 확인 한 다음 버츄얼 박스를 설정한다. 오른쪽 버튼을 눌러서 설정으로 간 다음 네트워크-포트포워딩을 클릭한다. 그리고 포트 포워딩 규칙을 기재하면 된다. 게스트id는 ifconfig에서 봤던 ip를 적으면 된다.

그 다음 postgres 의 환경설정 파일을 수정할 것이다. 수정할 것은 2개가 있는데 밑에 처럼 파일을 수정한다.

vi /var/lib/pgsql/9.6/data/pg_hba.conf

vi /var/lib/pgsql/9.6/data/postgresql.conf

 

다시한번 서버를 재시작 시킨다. 시작하기 전에 자동 시작 등록한다.

sudo systemctl start postgresql-9.6.service

reboot

 

datagrip에 가서 데이터베이스를 추가한다. 우선 ssh 설정을 한다. 여기서 잘 되었다면 Test Connection에서 성공이 뜰 것이다. 

리눅스 postgres에서 비밀번호를 설정해 주어야지 다음 단계를 할 수 있다. 리눅스에서 postgres에 접속하려면 postgres 사용자로 접속을 해야한다. 그 다음에 psql을 실행하고 패스워드를 1234로 바꿔준다.

sudo su - postgres
psql
alter user postgres with password '1234'

그 다음 다시 datagrip에 와서 비번호 사용자를 치면 test connection이 성공한다.

 

끝 !