在 CentOS 上安装并安全配置 PostgreSQL,可以按下面步骤来(以 CentOS 7 / 8 为例,PostgreSQL 15 为示例版本,其他版本类似)。
# CentOS 7
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# CentOS 8
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql15-server postgresql15-contrib
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15
sudo -u postgres psql
ALTER USER postgres WITH PASSWORD 'StrongPassword123!';
\q
编辑配置文件:
sudo vi /var/lib/pgsql/15/data/postgresql.conf
推荐配置:
listen_addresses = 'localhost'
或指定 IP:
listen_addresses = '192.168.1.100'
sudo vi /var/lib/pgsql/15/data/pg_hba.conf
安全示例:
# 本地 socket 登录
local all all peer
# 本地 TCP 登录(需要密码)
host all all 127.0.0.1/32 scram-sha-256
# 远程 IP(按需开放)
# host all all 192.168.1.0/24 scram-sha-256
⚠️ 不要使用 trust 和 md5(已不安全)
sudo firewall-cmd --permanent --remove-service=postgresql
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --add-port=5432/tcp
sudo firewall-cmd --reload
sudo passwd -l postgres
CREATE USER appuser WITH PASSWORD 'AppUser@2025';
GRANT CONNECT ON DATABASE mydb TO appuser;
编辑:
sudo vi /var/lib/pgsql/15/data/postgresql.conf
推荐:
logging_collector = on
log_directory = 'log'
log_filename = 'postgresql-%Y-%m-%d.log'
log_min_duration_statement = 500 # 慢查询
sudo -u postgres pg_dump mydb > /backup/mydb_$(date +%F).sql
sudo yum update postgresql15*
❌ 使用默认密码
❌ 对外开放 5432 端口
❌ 使用 trust 认证
❌ 用 postgres 账号跑业务程序
❌ 关闭日志
如果你愿意,我可以:
直接告诉我你的 CentOS 版本 + PostgreSQL 版本 即可。