温馨提示×

centos如何编译postgresql

小樊
44
2026-10-26 21:43:10
栏目: 云计算

下面以 CentOS 7 / 8 为例,说明如何从源码编译安装 PostgreSQL。


一、准备编译环境

1. 安装依赖

# CentOS 7
yum groupinstall "Development Tools" -y
yum install -y readline-devel zlib-devel libxml2-devel libxslt-devel \
openssl-devel pam-devel systemd-devel bison flex wget

# CentOS 8
dnf groupinstall "Development Tools" -y
dnf install -y readline-devel zlib-devel libxml2-devel libxslt-devel \
openssl-devel pam-devel systemd-devel bison flex wget

二、下载 PostgreSQL 源码

示例版本(可替换):

cd /usr/local/src
wget https://ftp.postgresql.org/pub/source/v16.2/postgresql-16.2.tar.gz
tar zxvf postgresql-16.2.tar.gz
cd postgresql-16.2

三、配置编译参数

基本编译

./configure --prefix=/usr/local/pgsql

常用可选参数

./configure \
  --prefix=/usr/local/pgsql \
  --with-openssl \
  --with-zlib \
  --with-libxml \
  --with-libxslt \
  --with-systemd

查看所有参数:

./configure --help

四、编译并安装

make -j$(nproc)
make install

五、创建用户与数据目录

useradd postgres
mkdir -p /usr/local/pgsql/data
chown -R postgres:postgres /usr/local/pgsql

六、初始化数据库

su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

启动:

/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

七、配置环境变量(可选)

cat >> /etc/profile <<EOF
export PATH=/usr/local/pgsql/bin:\$PATH
EOF

source /etc/profile

八、配置 systemd(推荐)

创建服务文件:

vi /usr/lib/systemd/system/postgresql.service

内容示例:

[Unit]
Description=PostgreSQL database server
After=network.target

[Service]
Type=forking
User=postgres
ExecStart=/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start
ExecStop=/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data stop
Restart=on-failure

[Install]
WantedBy=multi-user.target

启用:

systemctl daemon-reload
systemctl enable postgresql
systemctl start postgresql

九、验证

psql -V
psql -U postgres

如果你需要:

  • 编译 特定版本
  • 使用 RPM 而非源码
  • 开启 流复制 / 插件(如 pg_stat_statements)

可以直接告诉我你的 CentOS 版本和需求。

0 踩