温馨提示×

centos怎么编译安装postgresql

小樊
56
2026-09-03 08:39:54
栏目: 云计算

下面以 CentOS 7 / 8 为例,说明如何从源码编译安装 PostgreSQL(以 PostgreSQL 15 为例,其他版本方法类似)。


一、准备编译环境

1. 安装依赖

yum groupinstall "Development Tools" -y
yum install -y \
  readline-devel \
  zlib-devel \
  bison \
  flex \
  wget \
  gcc \
  make

如果是 CentOS 8,用 dnf 代替 yum


二、下载 PostgreSQL 源码

cd /usr/local/src
wget https://ftp.postgresql.org/pub/source/v15.5/postgresql-15.5.tar.gz
tar zxvf postgresql-15.5.tar.gz
cd postgresql-15.5

三、配置编译参数

./configure \
  --prefix=/usr/local/pgsql \
  --with-zlib

常用可选参数:

  • --with-python:支持 PL/Python
  • --with-perl:支持 PL/Perl
  • --with-openssl:支持 SSL

四、编译并安装

make -j$(nproc)
make install

安装完成后,PostgreSQL 在:

/usr/local/pgsql

五、创建 PostgreSQL 用户

useradd -m postgres
passwd 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

七、启动 PostgreSQL

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

测试连接:

/usr/local/pgsql/bin/psql

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

vi /etc/profile.d/pgsql.sh

内容:

export PATH=/usr/local/pgsql/bin:$PATH
export PGDATA=/usr/local/pgsql/data

生效:

source /etc/profile.d/pgsql.sh

九、设置开机自启(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 start -D /usr/local/pgsql/data
ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D /usr/local/pgsql/data
Restart=on-failure

[Install]
WantedBy=multi-user.target

启用:

systemctl daemon-reload
systemctl enable postgresql
systemctl start postgresql

十、允许远程连接(可选)

编辑:

vi /usr/local/pgsql/data/postgresql.conf
listen_addresses = '*'
vi /usr/local/pgsql/data/pg_hba.conf
host    all    all    0.0.0.0/0    md5

重启:

pg_ctl restart -D /usr/local/pgsql/data

如果你需要 指定版本 / 使用 RPM 安装 / 编译报错排查,可以继续告诉我。

0 踩