PostgreSQL 17.6 源码安装完整指南

PostgreSQL 是一款功能强大的开源关系型数据库管理系统。本文将详细介绍如何在 Linux 环境下通过源码编译安装 PostgreSQL 17.6。

安装方式选择

在 Linux 下安装 PostgreSQL 主要有三种方式:

  1. 二进制安装包安装 - 简单快捷
  2. 通过 yum 安装 - 一键安装:yum search postgresql && yum install postgresql
  3. 源码编译安装 - 灵活性最高,可定制化强

本文将重点介绍源码编译安装方式,这种方式可以让用户根据特定需求进行定制化配置。

环境准备

1. 创建用户与组

首先需要创建专门的用户来运行 PostgreSQL:

1
2
3
# groupadd postgres
# useradd -g postgres postgres
# passwd postgres

切换到 postgres 用户:

1
su - postgres

2. 环境变量配置

在 postgres 用户的 ~/.bash_profile 文件中添加以下环境变量:

1
2
3
4
5
6
export PGPORT=1922
export PG_HOME=/usr/local/pg17.6
export PATH=$PG_HOME/bin:$PATH
export PGDATA=$PG_HOME/data
export LD_LIBRARY_PATH=$PG_HOME/lib
export LANG=en_US.utf8

执行 source ~/.bash_profile 使配置生效。

依赖包检查与安装

在编译前需要确保系统已安装必要的依赖包。以 RedHat/CentOS 为例:

最小依赖包:

1
yum install -y gcc gcc-c++ zlib-devel readline-devel

其他可选依赖包:

1
2
yum install -y perl-ExtUtils-Embed pam-devel libxml2-devel \
libxslt-devel openldap-devel python-devel openssl-devel cmake

重要的编译依赖包括:readline、flex、bison。

源码编译安装

下载源码

从 PostgreSQL 官网下载源码:

1
2
3
wget https://ftp.postgresql.org/pub/source/v17.6/postgresql-17.6.tar.gz
tar -zxvf postgresql-17.6.tar.gz
cd postgresql-17.6

编译安装步骤

使用 postgres 用户执行以下命令:

1
2
3
4
$ cd /soft/postgresql-17.6
$ ./configure --prefix=/usr/local/pg17.6
$ make
$ make install

Configure 常用配置选项

  • prefix:指定安装路径
  • with-openssl:对 openssl 进行扩展支持
  • with-python:对 python 进行扩展支持
  • with-perl:对 perl 进行扩展支持
  • with-libxml:对 xml 进行扩展支持

数据库初始化与使用

1. 创建数据库集簇

创建数据目录:

1
mkdir /usr/local/pg17.6/data

初始化数据库集簇:

1
initdb -D $PGDATA -W

注意:

  • -W 参数指定创建数据库时让用户输入数据库用户 postgres 的密码
  • 使用 initdb --help 查看命令用法和参数
  • 操作系统用户名为 postgres,数据库中的超级用户名字也叫 postgres,注意区别

2. 数据库启动与关闭

启动数据库集簇:

1
pg_ctl -D $PGDATA start

关闭数据库集簇(多种方式):

  • 正常快速关闭(默认,fast 可以省略):

    1
    pg_ctl -D $PGDATA stop -m fast
  • 正常关闭

    1
    pg_ctl -D $PGDATA stop -m smart
  • 非正常快速关闭(下一次数据库启动需要做实例恢复):

    1
    pg_ctl -D $PGDATA stop -m immediate

注意: -D 参数可以省略,如果在用户环境中配置了 PGDATA 环境变量。

总结

通过源码编译安装 PostgreSQL 17.6 虽然步骤相对复杂,但提供了最大的灵活性和控制权。安装完成后,您就拥有了一个完全定制的 PostgreSQL 数据库环境,可以根据具体需求进行进一步的配置和优化。

建议在生产环境中使用前,充分测试各项功能,确保数据库的稳定性和性能满足应用需求。