🔍 문제 상황
PostgreSQL을 기동하려고 했는데, 다음과 같은 로그가 출력됩니다
2025-07-24 06:57:13.717 GMT [170150] LOG: starting PostgreSQL 17.5 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.5.0 20240719 (Red Hat 11.5.0-5.0.1), 64-bit
2025-07-24 06:57:13.717 GMT [170150] LOG: could not bind IPv4 address "10.0.0.61": Cannot assign requested address
2025-07-24 06:57:13.717 GMT [170150] WARNING: could not create listen socket for "10.0.0.61"
2025-07-24 06:57:13.724 GMT [170150] FATAL: could not create any TCP/IP sockets
2025-07-24 06:57:13.933 GMT [170150] LOG: database system is shut down
🧠 원인 분석
해당 에러는 PostgreSQL이 설정 파일(postgresql.conf)에서
접속을 허용할 IP 주소(listen_addresses)를 10.0.0.61로 지정했지만 실제로 서버에는 이 IP가 존재하지 않기 때문에 발생합니다.
즉, PostgreSQL이 "10.0.0.61에 바인딩하려 했지만, 그 IP는 내 것이 아닌데요?" 라며 거부하는 것입니다 😅
🛠️ 해결 방법
✅ 1. 현재 서버 IP 확인
[postgres@gwon-sub pg_log]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UP group default qlen 1000
link/ether 02:00:17:01:d8:60 brd ff:ff:ff:ff:ff:ff
altname enp0s3
inet 10.0.0.117/24 brd 10.0.0.255 scope global dynamic noprefixroute ens3
valid_lft 70472sec preferred_lft 70472sec
inet6 fe80::17ff:fe01:d860/64 scope link noprefixroute
valid_lft forever preferred_lft forever
✅ 2. postgresql.conf 수정
- archive_mode, archive_command, archive_timeout, hot_standby 파라미터는 서버 구성에 맞게 적절히 설정
[postgres@gwon-sub data]$ vi $PGDATA/postgresql.conf
#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------
...(생략)...
cluster_name = 'standby_db'
listen_addresses = '10.0.0.117'
port = 5432
#archive_mode = on
#archive_command = 'cp %p /postgres/app/postgres/pgsql17/pg_arch/%f'
#archive_timeout = 120
hot_standby = on
...(생략)...
✅ 3. PostgreSQL 재시작
[postgres@gwon-sub data]$ $PG_HOME/bin/pg_ctl -D $PGDATA start
🎯 마무리
PostgreSQL의 기동 실패는 대부분 설정 실수에서 비롯됩니다.
특히 IP 설정 관련 이슈는 환경이 복잡할수록 자주 발생하니, listen_addresses 설정 전에는 반드시 서버에 존재하는 IP인지 확인하세요!
'🗄️ DB_이야기 > # 🐘 PostgreSQL' 카테고리의 다른 글
| 🐘[PostgreSQL] 외부 접속 허용 방법 (3) | 2025.07.30 |
|---|---|
| 🐘[PostgreSQL] 환경변수 및 DB 기동/정지 정리 (2) | 2025.07.28 |
| 🐘 [PostgreSQL] 타임라인 에러: "requested timeline is not a child of this server's history" (3) | 2025.07.24 |
| 🐘[PostgreSQL] 수동 장애 전환(Fail-Over)과 복구(Fail-Back) (2) | 2025.07.24 |
| 🐘 [PostgreSQL] PostgreSQL 17 고가용성(HA) 이중화 설치 가이드(2) (4) | 2025.07.17 |