Posted on

如何設定與操作PostgreSQL

了解安裝的PostgreSQL的相關資訊

像我是使用CentOS,因此我可以用下面的指令來得知現在系統中PostgreSQL的運行狀況

sudo systemctl status postgresql-13
● postgresql-13.service - PostgreSQL 13 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-13.service; enabled; vend>
   Active: active (running) since Sat 2024-06-08 22:48:41 UTC; 2 weeks 1 days a>
     Docs: https://www.postgresql.org/docs/13/static/
 Main PID: 3264201 (postmaster)
    Tasks: 8 (limit: 23678)
   Memory: 27.6M
   CGroup: /system.slice/postgresql-13.service
           ├─3264201 /usr/pgsql-13/bin/postmaster -D /var/lib/pgsql/13/data/
           ├─3264202 postgres: logger
           ├─3264204 postgres: checkpointer
           ├─3264205 postgres: background writer
           ├─3264206 postgres: walwriter
           ├─3264207 postgres: autovacuum launcher
           ├─3264208 postgres: stats collector
           └─3264209 postgres: logical replication launcher

Warning: Journal has been rotated since unit was started. Log output is incompl>

從回覆的資料可以看出,設定檔的資料會在/var/lib/pgsql/13/data/,接著就搜尋裡面的設定檔*.conf

[root@aia16 13]# find /var/lib/pgsql/13 -name *.conf
/var/lib/pgsql/13/data/postgresql.conf
/var/lib/pgsql/13/data/postgresql.auto.conf
/var/lib/pgsql/13/data/pg_hba.conf
/var/lib/pgsql/13/data/pg_ident.conf

允許非本機的連線

PostgreSQL 默認配置只允許本地連接(即 localhost127.0.0.1),這是出於安全考量。要允許遠程連接,需要修改 PostgreSQL 的配置文件並設置適當的防火牆規則。以下是允許遠程連接的步驟:

1. 修改 postgresql.conf 文件,打開 postgresql.conf 文件,找到 listen_addresses 配置項,將其設置為 ' * ' 以允許所有地址連接,或者指定特定的 IP 地址。例如:

listen_addresses = '*'

修改 pg_hba.conf 文件,添加允許遠程連接的規則。

host    all             all             0.0.0.0/0               md5

如果你只想允許特定的 IP 地址範圍,例如 192.168.1.0/24,可以這樣設置:

host    all             all             192.168.1.0/24          md5

接著重啟PostgreSQL

sudo systemctl restart postgresql