VartureBox Test DB Setting

1. PostgreSQL 설치 저장소 추가

먼저, 공식 PostgreSQL 저장소를 추가해야 합니다. 최신 버전을 사용하도록 PostgreSQL 14 버전을 설치하도록 하겠습니다.

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

2. PostgreSQL 설치

저장소를 추가한 후 PostgreSQL을 설치합니다:

sudo yum install -y postgresql14 postgresql14-server postgresql14-contrib postgresql14-libs

3. PostgreSQL 초기화

PostgreSQL 데이터베이스를 초기화합니다:

sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
  1. PostgreSQL 시작 및 활성화

    PostgreSQL을 시작하고 부팅 시 자동으로 시작되도록 설정합니다:

sudo systemctl start postgresql-14
sudo systemctl enable postgresql-14

5. PostgreSQL 설정

5.1 postgresql.conf 파일 수정

postgresql.conf 파일을 편집하여 PostgreSQL이 모든 IP 주소에서 접속을 허용하도록 설정합니다:

sudo vi /var/lib/pgsql/14/data/postgresql.conf

pg_hba.conf 파일에서 0.0.0.0/0을 사용하면 모든 IP 주소에서의 접속을 허용할 수 있습니다. 이는 보안상 위험할 수 있으므로, 실제 사용 환경에서는 필요에 따라 제한된 IP 범위를 지정하거나 다른 보안 조치를 추가하는 것이 좋습니다.


pg_hba.conf 파일 수정하기

pg_hba.conf 파일 열기

sudo nano /var/lib/pgsql/data/pg_hba.conf

모든 IP에서 접속 허용

파일의 끝에 다음 줄을 추가합니다. 이 줄은 모든 IP 주소에서 모든 사용자가 모든 데이터베이스에 SSL 없이 접속할 수 있도록 설정합니다.

host all all 0.0.0.0/0 md5

여기서 md5 대신 trust를 사용하면 비밀번호 없이 접속을 허용하지만, 이는 보안상 매우 위험합니다. 가능한 경우 md5 또는 다른 인증 방식을 사용하는 것이 좋습니다.


파일 저장 및 종료


PostgreSQL 서버 재시작

변경 사항을 적용하기 위해 PostgreSQL 서버를 재시작합니다.

sudo systemctl restart postgresql

PostgreSQL 설정 파일 (postgresql.conf) 수정

모든 IP에서의 접속을 허용하려면 postgresql.conf 파일에서도 해당 설정을 해야 합니다.


postgresql.conf 파일 열기

sudo nano /var/lib/pgsql/data/postgresql.conf

listen_addresses 설정 변경

listen_addresses 설정을 찾아서 '*'로 변경합니다.

listen_addresses = '*'

파일 저장 및 종료


PostgreSQL 서버 재시작

다시 한 번 PostgreSQL 서버를 재시작합니다.

sudo systemctl restart postgresql

이제 모든 IP 주소에서 PostgreSQL 서버에 접속할 수 있습니다. 보안상 필요한 경우 방화벽 설정이나 PostgreSQL의 추가 보안 설정을 통해 접속을 제한하는 것이 좋습니다.

다음 내용을 찾아 수정합니다:

#listen_addresses = 'localhost'

다음과 같이 변경합니다:

listen_addresses = '*'

5.2 pg_hba.conf 파일 수정

pg_hba.conf 파일을 편집하여 호스트에서의 접속을 허용합니다:

sudo vi /var/lib/pgsql/14/data/pg_hba.conf

파일의 끝에 다음 내용을 추가합니다:

host all all 0.0.0.0/0 md5

6. PostgreSQL 사용자 및 데이터베이스 설정

6.1 PostgreSQL 사용자 생성

PostgreSQL에 접속하여 사용자를 생성합니다:

sudo -i -u postgres
psql

다음 명령을 사용하여 새 사용자와 데이터베이스를 생성합니다:

CREATE USER myuser WITH PASSWORD 'mypassword';
ALTER USER myuser WITH SUPERUSER;
CREATE DATABASE mydb;
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
\q
exit

7. 방화벽 설정

7.1 PostgreSQL 포트 열기

방화벽에서 PostgreSQL 포트(기본적으로 5432)를 엽니다:

sudo firewall-cmd --permanent --add-port=5432/tcp
sudo firewall-cmd --reload

8. 호스트에서 PostgreSQL 접속

이제 호스트 머신에서 PostgreSQL에 접속할 수 있습니다. 다음과 같이 psql 명령이나 다른 클라이언트 도구를 사용할 수 있습니다:

psql -h [VirtualBox IP Address] -U myuser -d mydb

예를 들어, VirtualBox의 IP 주소가 192.168.56.101이라면 다음과 같이 접속합니다:

psql -h 192.168.56.101 -U myuser -d mydb

myuser의 비밀번호를 입력하면 PostgreSQL 데이터베이스에 접속할 수 있습니다.


postgres 사용자의 비밀번호 인증에 실패했다는 메시지를 보면, 현재 postgres 사용자의 비밀번호를 알고 있어야 합니다. 비밀번호를 모르거나 설정된 비밀번호가 기억나지 않는 경우, 비밀번호를 재설정하는 방법이 필요합니다.

1. PostgreSQL 서비스 중지

먼저 PostgreSQL 서비스를 중지합니다.
sudo systemctl stop postgresql

2. 인증을 비활성화하여 PostgreSQL 서버 시작

pg_hba.conf 파일을 편집하여 모든 인증을 비활성화합니다. 이는 보통 /var/lib/pgsql/data/pg_hba.conf에 위치합니다.

sudo nano /var/lib/pgsql/data/pg_hba.conf

pg_hba.conf 파일에서 local 접속 방법을 trust로 변경합니다.


"local" is for Unix domain socket connections only

local all all trust


변경 사항을 저장하고 파일을 닫습니다.

3. PostgreSQL 서버를 인증 없이 시작

PostgreSQL 서버를 시작합니다.

sudo systemctl start postgresql

4. postgres 사용자로 접속

이제 postgres 사용자로 인증 없이 접속할 수 있습니다.

sudo -u postgres psql

5. postgres 사용자 비밀번호 재설정

postgres 사용자의 비밀번호를 재설정합니다.

ALTER USER postgres WITH PASSWORD 'new\_password';

6. pg_hba.conf 파일 원래 상태로 복구

다시 pg_hba.conf 파일을 편집하여 원래 상태로 복구합니다. trust를 다시 md5로 변경합니다.

sudo nano /var/lib/pgsql/data/pg_hba.conf

다음 줄을 md5로 변경합니다.


"local" is for Unix domain socket connections only

local all all md5

변경 사항을 저장하고 파일을 닫습니다.

7. PostgreSQL 서버 재시작

변경 사항을 적용하기 위해 PostgreSQL 서버를 재시작합니다.

sudo systemctl restart postgresql

8. postgres 사용자로 접속

이제 새로운 비밀번호로 postgres 사용자로 접속할 수 있습니다.

sudo -u postgres psql -W

비밀번호 프롬프트가 표시되면 설정한 new_password를 입력하십시오.

이제 새로운 비밀번호로 postgres 사용자로 접속이 가능합니다. 이후에 root 사용자 생성 및 데이터베이스 권한 설정 등의 작업을 계속 진행할 수 있습니다.

2 Comments
Jordan Singer
2d
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Non minima ipsum at amet doloremque qui magni, placeat deserunt pariatur itaque laudantium impedit aliquam eligendi repellendus excepturi quibusdam nobis esse accusantium.
2 replies
Brandon Smith
2d
Lorem ipsum dolor sit, amet consectetur adipisicing elit.
James Parsons
1d
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Distinctio dolore sed eos sapiente, praesentium.
Santiago Roberts
4d
Lorem ipsum dolor sit amet consectetur adipisicing elit. Iusto laborum in corrupti dolorum, quas delectus nobis porro accusantium molestias sequi.