728x90
본 포스팅은 Ubuntu 20.04 운영체제를 기준으로 작성되었습니다.
(설치 가이드를 보고자 하면, 3번 항목부터 보면 된다.)
1. 데이터 백업(가장 중요)
pg_dumpall이나 pg_dump 명령어를 사용해 데이터를 백업한다.
(명령어 사용법은 구글 검색)
2. PostgreSQL과 관련된 패키지 전체 삭제
sudo apt-get --purge remove postgresql\*
dpkg -l | grep postgres
3. PostgreSQL12를 Ubuntu 20.04에 설치
공식 인스톨 가이드 - https://www.postgresql.org/download/linux/ubuntu/
pgdg.list 파일을 만들고 vi 편집기로 연다
sudo touch /etc/apt/sources.list.d/pgdg.list
sudo vi /etc/apt/sources.list.d/pgdg.list
pgdg.list 파일에 아래 내용을 넣고 저장한다.
deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main
아래 커맨드를 차례대로 실행하면 설치까지 끝난다.
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
sudo apt install postgresql-12
4. 유저 추가
postgres유저로 바꾼 후, 새로운 유저를 추가한다.
sudo su - postgres
createuser --pwprompt --interactive <USER_NAME>
위의 커맨드를 입력 후 패스워드를 두번 입력한다.
Shall the new role be a superuser? (y/n) y
y를 입력해 관리자 권한을 준다.
접속 테스트
psql -h localhost -U <USER_NAME> -d postgres
5. 외부 접속 설정
postgresql.conf 파일을 수정
sudo vi /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;
위의 설정이 되지 않았을 경우는, DB 접속시 아래의 에러가 발생하게 된다.
could not connect to server: Connection refused
pg_hba.conf 파일을 수정
sudo nano /etc/postgresql/12/main/pg_hba.conf
접속 인증을 할 IP범위를 설정하기 위해서 아래 내용을 추가한다.
(내부 네트워크일 경우 아래 내용에서 아이피 정도만 바꾸면 된다)
host all all 192.168.1.1/24 md5
혹은, 모든 IP주소에 대한 접근을 허용하기 위해서는 아래와 같이 설정한다.
host all all 0.0.0.0/0 md5
위의 설정이 되지 않았을 경우는, DB 접속시 아래의 에러가 발생하게 된다.
FATAL: no pg_hba.conf entry for host "<HOST_IP>", user "<USER_NAME>", database "<DATABASE_NAME>", SSL off error
설정을 마친 후 Postgresql 서비스 재시작
sudo systemctl restart postgresql
#References
- https://blog.elmi.page/628
- https://velog.io/@shj5508/Ubuntu-Postgresql-%EB%8B%A4%EC%8B%9C-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0
반응형
'Server > Linux' 카테고리의 다른 글
리눅스 압축 파일 관리 (tar 압축, 추출) (0) | 2022.03.28 |
---|---|
Window10에서 .sh bash 파일 실행 (0) | 2022.03.25 |
visudo와 vi /etc/sudoers 의 차이점 (0) | 2021.12.23 |
특정 유저로 sudo명령어가 안될때 (XXX is not in the sudoers file.) (0) | 2021.12.22 |
라우팅(Routing)이란?, 리눅스 라우팅 설정 (0) | 2021.12.13 |