https://www.postgresql.org/download/
일단 리눅스를 선택한다.
그럼 바로 아래에 OS선택이 뜨는데 난 centos7이니 Red Hat을 선택했다.
그럼 이 페이지로 이동하는데
https://www.postgresql.org/download/linux/redhat/
조금만 스크롤 하면 이런 화면이 나온다.
어떤 버전을 다운받을지 플랫폼은 뭔지 아키텍쳐는 뭔지 선택하면 설치 스크립트가 나오는데
난 최신 버전 16과 CentOS7 선택했고 아키텍쳐 확인은 리눅스(centos 7)에서 아래 명령어로 확인한다.
uname -m
난 x86_64가 나왔다.
그럼 아래와 같은 스크립트가 나온다. 복사한다.
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql16-server
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
sudo systemctl enable postgresql-16
sudo systemctl start postgresql-16
리눅스에서 su권한을 획득한 상태에서 첫번째 스크립트 yum을 실행한다.
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
일단 성공.
두번째 스크립트 실행
yum install -y postgresql16-server
Error가 뜬다. 썩을
yum list | grep postgresql16 명령어로 postgresql16을 설치할 수 있는패키지 항목을 조회해 보았으나 아무것도 없었다.
yum list | grep postgresql15명령어로 확인해보니 뜬다.
계획을 바꿔서 15를 설치해보겠다.
yum install -y postgresql15-server
성공
postgresql15-server 설치가 완료됬다면 /usr/pgsql-15 경로에서 확인이 가능하다.
데이터베이스 setup을 진행한다.
/usr/pgsql-15/bin/postgresql-15-setup initdb
cd /usr/pgsql-15/bin/명령어로 이동해서 실행을 해도 된다.
PostgreSQL 기동
systemctl start postgresql-15
(재기동은 restart를 쓰면된다.)
일단 기초 설치는 이걸로 끝이다.
이제 su계정에서 postgres 계정으로 전환하고 나머지 설정을 손보려한다.
su - postgres
pwd를 실행해보면 현재 위치가 /var/lib/pgsql로 나타난다.
원격접속 설정을 위해 /var/lib/pgsql/15/data/pg_hba.conf 를 vi에디터로 편집한다.
vi /var/lib/pgsql/15/data/pg_hba.conf
아래로 스크롤 해보면 local connection 설정부분이 나온다.
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256 요 아래에 0.0.0.0/0... 을 추가한다.
host all all 0.0.0.0/0 scram-sha-256
다음은 postgresql.conf파일이다.
마찬가지로 vi에디터로 편집해주자.
vi /var/lib/pgsql/15/data/postgresql.conf
listen_addresses를 보면 localhost가 있는데 이를 *로 바꿔준다.
저장하고 나와서 exit명령어를 입력하여 su계정으로 전환하자.
환경 설정이 바뀌었으니 su계정으로 postgreSQL을 재시작해주자.
exit를 입력하면 다시 su 상태가 된다.
systemctl restart postgresql-15
참고로 처음 제공된 스크립트들 중 systemctl enable postgresql-15는 OS가 기동될때 자동으로 postgresql 서버가 실행되도록 하는 설정이다.
실행하면 이런 처리 결과를 확인할 수 있게 된다.
어찌 저찌 외부 접속까지는 다 됐는데 그럼 남은건 외부에서 어떤 계정을 사용해서 접근하게 만들지를 설정할 단계다.
다시 postgres계정으로 전환하자
su - postgres
그리고 psql을 실행 후 postgres=# 상태가 확인된다면
\du 명령어를 입력해 사용자명, 권한, 소유한 데이터베이스 등의 정보를 표시해 본다.
나님이 슈퍼유저란 뜻이다.
당연히 계정 생성이 가능하다.
외부 접속을 하려면 새로운 db user 를 생성하거나 postgres(관리자)의 password 를 설정해야 한다.
난 둘 다 하겠다.
먼저 관리자 password 설정
alter user postgres with password '원하는비밀번호입력';
ALTER ROLE 라고 뜨면 성공이다.
다음은 외부 접속용 아이디 생성
create user tester with password ' 원하는비밀번호입력 ';
CREATE ROLE 라고 뜨면 성공이다.
DB도 만들어주자
createdb testdb;
간단하다.
이제 내 PC(맥)에서 접속을 해보자.
(솔직히 이 부분에서 몇 시간을 소비해버렸다. 난 분명히 postgresql.conf 파일의 설정을 외부 접속 가능하도록 위에서 진행했는데... 한참 삽질 하다보니 바뀌어 있지 않았다. -_-)
pgAdmin4를 실행해서 Servers에서 마우스 오른쪽을 눌러보니 Register가 보인다. 그 옆엔 Server가 있으니 이를 선택하자
그럼 Register 새창이 뜨고 여기에 Name에 내가 원하는 식별 이름을 적어주자.
그 옆 탭은 Connection 당연히 postgreSQL이 설치된 ip를 host name/address에 적어주고
port는 기본 port인 5432
db는 내가 생성한 db인 testdb
username도 내가 일전에 생성한 userid
password도 아까 user생성할 때 함께 적었던 그 비번을 넣으면 된다.
그리고 Save
그럼 생성한 user를 이용해 외부 DB에 최종적으로 연결된 모습을 확인할 수 있다.
다음엔 생성된 계정 tester를 이용해 testdb에 접근하여 데이터를 조회해오는 샘플 프로젝트를 진행해 볼 예정이다.
https://hippalus.tistory.com/650
'postgreSQL' 카테고리의 다른 글
postgresql 실행중인 쿼리 확인 후 취소 (0) | 2024.10.21 |
---|---|
5. node.js 어플리케이션에서 postgreSQL DB 조회에 사용할 계정 만들고 직접 구현해보기 (0) | 2024.05.13 |
3. pgAdmin으로 이용자 만들기 (0) | 2024.05.10 |
postgreSQL window에 설치 삽질 There has been an error. icacls 오류 (0) | 2024.05.09 |