본문 바로가기
다른 DBMS/PostgresDB

DB 설치 후 client tool과 외부 연결하기

by 취미툰 2023. 11. 22.
반응형

테스트용 DB를 설치 후(DB version 9.2) 디비버나 pgamin 같은 Client Tool로 접속하기 위해서 여러가지 시도해보고 성공하였습니다. 그걸 정리해보도록 하겠습니다.

 

우선 DB 설치는 yum install로 기본 설치로 진행하였습니다.

 

DB 설치는 여기를 참고하세요.

저는 최신버전을 다운받으려고 했으나, 빠른 테스트를 위해서 그냥 예전버전인 9.2버전으로 설치했습니다.

 

1) YUM install

[root@ysbae ~]# yum install -y postgresql
Loaded plugins: fastestmirror, product-id, search-disabled-repos, subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile
 * base: ftp.kaist.ac.kr
 * extras: ftp.kaist.ac.kr
 * updates: ftp.kaist.ac.kr
Resolving Dependencies
--> Running transaction check
---> Package postgresql.x86_64 0:9.2.24-8.el7_9 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================================
 Package                       Arch                      Version                           Repository                  Size
============================================================================================================================
Installing:
 postgresql                    x86_64                    9.2.24-8.el7_9                    updates                    3.0 M

Transaction Summary
============================================================================================================================
Install  1 Package

Total download size: 3.0 M
Installed size: 16 M
Downloading packages:
postgresql-9.2.24-8.el7_9.x86_64.rpm                                                                 | 3.0 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : postgresql-9.2.24-8.el7_9.x86_64                                                                         1/1
  Verifying  : postgresql-9.2.24-8.el7_9.x86_64                                                                         1/1

Installed:
  postgresql.x86_64 0:9.2.24-8.el7_9

Complete!

 

2)Cluster 등록

[root@ysbae ~]#  postgresql-setup initdb
Initializing database ... OK

[root@ysbae ~]# systemctl enable postgresql.service
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql.service to /usr/lib/systemd/system/postgresql.service.
[root@ysbae ~]# systemctl start postgresql.service

[root@ysbae ~]# ps -ef |grep postgres
postgres   967     1  0 14:36 ?        00:00:00 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432
postgres   970   967  0 14:36 ?        00:00:00 postgres: logger process
postgres   972   967  0 14:36 ?        00:00:00 postgres: checkpointer process
postgres   973   967  0 14:36 ?        00:00:00 postgres: writer process
postgres   974   967  0 14:36 ?        00:00:00 postgres: wal writer process
postgres   975   967  0 14:36 ?        00:00:00 postgres: autovacuum launcher process
postgres   976   967  0 14:36 ?        00:00:00 postgres: stats collector process
root      1186  1170  0 14:38 pts/0    00:00:00 grep --color=auto postgres

 

 

3)postgres 접속 및 패스워드 변경

[postgres@ysbae:~]$ psql
psql (9.2.24)
Type "help" for help.

postgres=#
postgres=# \password postgres
Enter new password:
Enter it again:
postgres=#
postgres-# \q

 

끝.

 

밑에부터는 Client 접속과 관련되서 설정하는 부분입니다.

우선 postgres DB에서 connection과 관련된 부분은 두부분을 봐야합니다. postgres.conf 와 pg_hba.conf입니다.

postgres.conf는 서버쪽 connection의 설정이고, pg_hba.conf는 client쪽 connection 설정이라고 보면 됩니다.

 

1)

기존에 postgres.conf쪽부터 확인해보면, 아래의 connection and authentication 부분에 listen_addresses 와 port 부분이 주석처리되어 있습니다. 어떤 ip를 받을것인지 어떤 port를 받을것인지에 대한 정보입니다.

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
#port = 5432                            # (change requires restart)

 

아래의 정보로 변경합니다.적용하려면 재기동이 필요합니다.pg_hba.conf까지 변경 후 한번에 재기동하기 위해서 설정만 변경합니다.

To-BE

listen_addresses = '*'
port = 5432

 

 

2)

pg_hba.conf를 확인해보면 아래와 같습니다.

ipv4에서 현재는 로컬만(127.0.0.1) 연결을 허용하고 있기 때문에 아래에 내용을 추가합니다.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident


# IPv6 local connections:

host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            ident
#host    replication     postgres        ::1/128                 ident

 

TO-BE

모든 ipv4의 ip에 대해서 연결을 허용한다는 뜻입니다. trust는 무조건적인 허용이지만, md5방식으로 접근을 허용하게 하였습니다.

host    all             all             0.0.0.0/0               md5

 

두개를 변경 하거나 잘 설정되어있는지 체크한 후 재기동을 합니다.

[root@ysbae ~]# systemctl restart postgresql

 

그리고 디비버로 test connection 해보면 성공!

반응형

댓글