CentOS 7作为一款广泛使用的Linux发行版,其稳定性和兼容性使其成为部署PostgreSQL数据库服务器的理想选择,本文将详细介绍在CentOS 7系统上安装、配置和初步使用PostgreSQL的完整流程,帮助读者快速上手这一强大的开源关系型数据库系统。

安装前的准备
在开始安装PostgreSQL之前,确保系统已更新到最新状态,打开终端,执行以下命令更新系统包:
sudo yum update -y
建议检查系统是否已安装PostgreSQL的旧版本,如已安装需先卸载:
sudo yum remove postgresql postgresql-server postgresql-libs -y
准备阶段还包括确认系统资源是否满足PostgreSQL的最低要求,至少需要1GB内存和2GB磁盘空间,生产环境建议根据实际负载配置更高资源。
添加PostgreSQL官方仓库
CentOS 7默认的软件仓库中可能不包含最新版本的PostgreSQL,因此需要添加官方 yum 仓库,首先安装 EPEL(Extra Packages for Enterprise Linux)仓库:
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
然后添加 PostgreSQL 官方仓库,以PostgreSQL 13为例,执行以下命令:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
添加仓库后,系统将能够从官方源获取最新版本的PostgreSQL软件包。
安装PostgreSQL服务器
完成仓库配置后,即可开始安装PostgreSQL服务器,使用以下命令安装PostgreSQL服务端和客户端工具:
sudo yum install -y postgresql-server postgresql-contrib
此命令会自动安装PostgreSQL核心程序以及一些实用工具,如pgbench性能测试工具和pgAdmin管理界面(需单独配置)。
初始化数据库
PostgreSQL安装后需要手动初始化数据库集群,在CentOS 7中,推荐使用postgresql-setup工具完成初始化:

sudo postgresql-setup initdb
初始化过程会创建数据目录(默认为/var/lib/pgsql/data)并生成基础配置文件,如果初始化失败,可检查磁盘空间或权限设置。
启动并启用PostgreSQL服务
初始化完成后,启动PostgreSQL服务并设置为开机自启:
sudo systemctl start postgresql sudo systemctl enable postgresql
使用以下命令检查服务状态:
sudo systemctl status postgresql
若显示active (running),则表示服务已成功启动。
配置防火墙和SELinux
CentOS 7默认启用防火墙,需开放PostgreSQL默认端口5432,执行以下命令:
sudo firewall-cmd --permanent --add-service=postgresql sudo firewall-cmd --reload
如果启用了SELinux,需调整策略以允许PostgreSQL访问网络,可通过以下命令设置:
sudo setsebool -P postgresql_can_network_db on
修改默认密码和访问权限
PostgreSQL安装后会创建一个名为postgres的超级用户账户,默认情况下,该用户无需密码即可通过本地连接,为增强安全性,需为postgres用户设置密码:
sudo -u postgres psql \password postgres \q
修改pg_hba.conf文件以调整身份验证方式,编辑文件:
sudo vi /var/lib/pgsql/data/pg_hba.conf
将本地连接的认证方式从peer或ident改为md5(需密码认证),

local all all md5
host all all 127.0.0.1/32 md5
修改后重启PostgreSQL服务使配置生效:
sudo systemctl restart postgresql
创建新用户和数据库
为应用程序创建专用数据库和用户是最佳实践,使用postgres用户登录并执行以下SQL命令:
sudo -u postgres createuser --interactive -P yourusername createdb yourdatabase
根据提示输入用户密码和权限设置,完成后即可通过新用户连接数据库。
常用管理命令
PostgreSQL提供了丰富的命令行工具用于日常管理:
- 连接数据库:
psql -d yourdatabase -U yourusername - 查看数据库列表:
\l - 切换数据库:
\c yourdatabase - 查看表结构:
\d yourtable - 退出:
\q
相关FAQs
Q1: 如何忘记PostgreSQL管理员密码?
A1: 可通过以下步骤重置密码:
- 停止PostgreSQL服务:
sudo systemctl stop postgresql - 以
postgres用户身份无密码模式启动:sudo -u postgres /usr/pgsql-*/bin/postgres -D /var/lib/pgsql/data - 新终端执行:
sudo -u postgres psql,使用\password postgres重置密码 - 重启服务:
sudo systemctl restart postgresql
Q2: 如何升级PostgreSQL版本?
A2: 升级前需备份数据库:pg_dumpall -f backup.sql
- 安装新版本PostgreSQL:
sudo yum install postgresql-server postgresql-contrib - 使用
pg_upgrade工具执行升级:sudo pg_upgrade -b /usr/pgsql-*/bin -B /usr/pgsql-*/bin -d /var/lib/pgsql/data -D /new/data/path - 验证无误后替换旧数据目录,重启服务即可。