温馨提示×

CentOS如何部署PostgreSQL

小樊
43
2026-07-21 10:21:36
栏目: 云计算

CentOS 上部署 PostgreSQL,常见有三种方式:官方仓库安装(推荐)CentOS 自带仓库安装源码编译安装。下面以 CentOS 7 / 8 / Stream 为例,重点讲解 推荐方式(官方仓库),并补充常用配置。


一、使用 PostgreSQL 官方仓库安装(✅ 推荐)

1. 安装 PostgreSQL 官方仓库

PostgreSQL 16 为例(可换成 15 / 14):

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 / Stream 8

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

2. 安装 PostgreSQL

sudo yum install -y postgresql16-server postgresql16-contrib

3. 初始化数据库

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

4. 启动并设置开机自启

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

查看状态:

systemctl status postgresql-16

二、配置 PostgreSQL(常用)

1. 切换到 postgres 用户

sudo -i -u postgres

进入数据库:

psql

2. 修改 postgres 用户密码

ALTER USER postgres WITH PASSWORD 'StrongPassword';

退出:

\q

3. 允许远程访问(可选)

修改 postgresql.conf

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

修改:

listen_addresses = '*'

修改 pg_hba.conf

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

添加:

host  all  all  0.0.0.0/0  md5

4. 开放防火墙端口

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

5. 重启 PostgreSQL

sudo systemctl restart postgresql-16

三、使用 CentOS 自带仓库安装(不推荐)

版本较旧(如 PostgreSQL 10):

sudo yum install -y postgresql-server postgresql-contrib
sudo postgresql-setup initdb
sudo systemctl enable postgresql
sudo systemctl start postgresql

⚠️ 不建议生产环境使用


四、验证安装

本地连接:

psql -h 127.0.0.1 -U postgres

查看版本:

SELECT version();

五、常见问题

1. 无法远程连接

  • 检查 listen_addresses
  • 检查 pg_hba.conf
  • 检查防火墙
  • 检查云服务器安全组

2. 初始化失败

rm -rf /var/lib/pgsql/16/data/*
/usr/pgsql-16/bin/postgresql-16-setup initdb

六、生产环境建议

✅ 使用官方仓库
✅ 单独数据盘
✅ 定期备份(pg_dump
✅ 使用 md5 / scram-sha-256 认证
✅ 禁止 postgres 用户直接远程登录


如果你告诉我:

  • CentOS 版本
  • PostgreSQL 版本
  • 是否生产环境 / 单机 / 主从

我可以给你一份 更精确的部署方案或生产级配置模板

0