温馨提示×

怎么在CentOS上部署PostgreSQL

小樊
38
2026-08-20 03:46:25
栏目: 云计算

下面给你一个在 CentOS 7 / CentOS 8 / Rocky / Alma 通用的 PostgreSQL 部署教程,从安装到初始化、远程访问、常用配置,一步步来即可。


一、环境准备

1. 系统更新

sudo yum update -y

2. 检查是否已安装 PostgreSQL

rpm -qa | grep postgres

如果有旧版本,可先卸载:

sudo yum remove postgresql* -y

二、安装 PostgreSQL(推荐官方源)

方式一:使用 PostgreSQL 官方 YUM 源(推荐)

1. 安装官方仓库(以 PostgreSQL 16 为例)

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

CentOS 8 / Rocky / Alma 可改为:

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2. 查看可用版本

yum search postgresql

3. 安装 PostgreSQL

sudo yum install -y postgresql16-server postgresql16-contrib

三、初始化数据库

1. 初始化数据目录

sudo /usr/pgsql-16/bin/postgresql-16-setup initdb

2. 启动并设置开机自启

sudo systemctl enable postgresql-16
sudo systemctl start postgresql-16

3. 查看运行状态

sudo systemctl status postgresql-16

四、基本配置

1. 切换到 postgres 用户

sudo -i -u postgres

2. 进入数据库

psql

3. 设置 postgres 用户密码

ALTER USER postgres WITH PASSWORD 'StrongPassword';

退出:

\q
exit

五、配置远程访问(常用)

1. 修改 postgresql.conf

sudo vi /var/lib/pgsql/16/data/postgresql.conf

修改或取消注释:

listen_addresses = '*'

2. 修改 pg_hba.conf

sudo vi /var/lib/pgsql/16/data/pg_hba.conf

在末尾添加:

# IPv4 remote connections
host    all             all             0.0.0.0/0               md5

生产环境建议改为指定 IP,如 192.168.1.0/24

3. 重启 PostgreSQL

sudo systemctl restart postgresql-16

六、防火墙放行端口(默认 5432)

firewalld(CentOS 7/8)

sudo firewall-cmd --add-port=5432/tcp --permanent
sudo firewall-cmd --reload

七、测试连接

本地测试

psql -h 127.0.0.1 -U postgres

远程测试

psql -h <服务器IP> -U postgres

八、创建新用户和数据库(可选)

CREATE USER myuser WITH PASSWORD 'mypassword';
CREATE DATABASE mydb OWNER myuser;
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

九、常见问题

1. 连接失败

  • 检查 listen_addresses
  • 检查 pg_hba.conf
  • 检查防火墙
  • 检查 SELinux(可临时关闭测试)

2. SELinux 问题

sudo setenforce 0

十、总结

✅ 安装 PostgreSQL
✅ 初始化数据库
✅ 配置远程访问
✅ 创建用户和数据库

如果你需要:

  • 主从复制
  • 备份与恢复(pg_dump / pg_basebackup)
  • Docker 部署
  • 生产环境参数优化

可以直接告诉我你的使用场景。

0