본문 바로가기
프로그래밍/TimescaleDB | PostgreSQL

Linux에서 TimescaleDB(PostgreSQL)를 외부로 오픈할 때 필요한 명령어

by 남생 namsaeng 2022. 3. 25.
반응형
리눅스에서 TimescaleDB(PostgreSQL)를 외부로 오픈할 때는 네트워크 연결 활성화 되어 있는지 먼저 확인한 후에 TimescaleDB(PostgreSQL)의 환경설정파일 정보를 변경한다.
 

1. 네트워크 연결 활성화

 

1) 서비스 확인, 시작 및 재시작

  • PostgreSQL 서비스가 활성화되어 있는지 알 수 있다.
[root@localhost ~]# systemctl status NetworkManager.service
[root@localhost ~]# systemctl start NetworkManager.service
[root@localhost ~]# systemctl restart NetworkManager.service
 
 

2) Ethernet 포트 연결 활성화

  • 리눅스의 "Settings"에 "Connection"으로 외부로 오픈할 DB가 어떤 Ethernet 포트를 이용할 것인지 확인한다. 나의 경우는 enp4s0에 랜선을 연결해서 통신하기로 했다. 사실상 nmcli con up 명령어만 사용해도 네트워크 연결 활성화 작업이 끝난다.
[root@localhost ~]# nmcli con up "enp4s0"
연결이 성공적으로 활성화되었습니다 (D-버스 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/5)

 

  • "nmcli con up"이 활성화라면 "nmcli con down"은 비활성화이다. 나중에 끌 경우를 생각하여 적어봤다.
[root@localhost ~]# nmcli con down "enp4s0"
'enp4s0' 연결이 성공적으로 비활성화되었습니다 (D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/2)



3) 네트워크 설정 확인

  •  host to host 통신을 위하여 IP설정을 할 때, 다른 장치는 192.168.2.1, 리눅스는 192.168.2.2로 설정했었다.
[root@localhost ~]# ip addr show enp4s0
4: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:a0:c9:00:00:8d brd ff:ff:ff:ff:ff:ff
inet 192.168.2.2/24 brd 192.168.1.255 scope global noprefixroute enp4s0
valid_lft forever preferred_lft forever
inet6 fe80::fbfd:6edb:88dd:e318/64 scope link noprefixroute
valid_lft forever preferred_lft forever



4) 전체 Ethernet 포트 연결상태 확인

  • "nmcli dev status"와 "nmcli con show"를 이용하여 연결 상태 및 UUID까지 확인이 가능하다.
[root@localhost ~]# nmcli dev status
DEVICE TYPE STATE CONNECTION
enp3s0 ethernet 연결됨 enp3s0
enp2s0 ethernet 연결됨 enp2s0
enp4s0 ethernet 연결됨 enp4s0
virbr0 bridge 연결됨 (외부) virbr0
lo loopback 관리되지 않음 --
virbr0-nic tun 관리되지 않음 --


[root@localhost ~]# nmcli con show
NAME UUID TYPE DEVICE
enp3s0 6719fbd7-cc4f-4eef-810d-d61b9d0ec0a5 ethernet enp3s0
enp2s0 d8dffd5e-295e-4411-b14b-66e0bca3bc46 ethernet enp2s0
enp4s0 cbc20186-4c01-48c3-b844-55948a4feb9b ethernet enp4s0
virbr0 86c4a3fb-e39a-4360-a672-c57f2aa8f635 bridge virbr0
 

 

2. TimescaleDB(PostgreSQL)의 환경설정파일 정보 변경

 

1) postgresql.conf 파일 찾기

  • TimescaleDB는 PostgreSQL를 기반으로 하고 있기 때문에 환경설정을 변경하려면 postgresql.conf에서 변경해야 한다. 해당 파일이 있는 위치를 확인한다.
[root@localhost ~]# find / -name postgresql.conf
find: ‘/run/user/1000/doc’: 허가 거부
find: ‘/run/user/1000/gvfs’: 허가 거부
/var/lib/pgsql/14/data/postgresql.conf

 


2) postgresql.conf 수정

  • 해당 파일에서 listen_addresses = '*' 앞에 있던 주석(#)을 지워준다.
vi /var/lib/pgsql/14/data/postgresql.conf

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

# - Connection Settings -

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

 

 

3) pg_hba.conf 수정

  • 상기 파일과 같은 경로에 있는 pg_hba.conf를 오픈하여 각 IPv4 및 IPv6 부분에 "host all all /0 md5"를 추가해준다.
vi /var/lib/pgsql/14/data/pg_hba.conf

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             192.168.1.2/32          scram-sha-256
host 	all		all		0.0.0.0/0		md5
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256
host	all		all		::/0			md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            scram-sha-256
host    replication     all             ::1/128                 scram-sha-256

 

 

4) postgresql restart

  • TimescaleDB(PostgreSQL)을 재시작한다.
service postgresql-14.service restart

 

 

반응형

댓글