PostgreSQL源码编译安装--CentOS/Ubuntu

PostgreSQL源码下载

PostgreSQL代码库地址:git.postgresql.org Git - postgresql.git/summary

PostgreSQL各版本源码下载地址:PostgreSQL: File Browser

本文以v15.2版本为例,下载源码:

无论是 CentOS 还是 Ubuntu 系统,PostgreSQL 编译及安装过程没有区别,主要区别在于安装环境的准备,接下来章节进行详细说明。

CentOS7环境编译安装

环境依赖

安装编译PostgreSQL所依赖的软件

sudo yum -y install vim wget git make cmake gcc g++ gcc-c++ 
sudo yum -y install boost-devel openssl-devel libattr-devel zlib-devel bzip2-devel ant readline-devel libxml2 libxml2-devel bison flex autoconf-2.69 uuid libuuid-devel uuid-devel bash-completion maven libtool
sudo yum -y install lz4-devel.x86_64 
sudo yum -y install epel-release
sudo yum -y install libzstd-devel

源码解压、编译

解压命令

tar -zxf postgresql-15.2.tar.gz
cd postgresql-15.2

解压后,进入解压目录,会看到一个 configure 可执行文件。PostgreSQL编译命令如下

./configure --prefix=/home/user/pginstall/pg15.2 --with-openssl --with-libxml --enable-nls --with-uuid=ossp -d
make -j
make install
# 插件编译安装
make -C contrib/ -j
make -C contrib/ install

其中 --prefix 表示安装路径。

Ubuntu22.04环境编译安装

环境依赖

安装编译PostgreSQL所依赖的软件

sudo apt-get install git cmake gcc g++ libboost-dev openssl libattr1-dev zlib1g-dev  bzip2 bzip2-doc ant libreadline-dev libxml2-dev bison flex maven automake autoconf2.69 libtool  pkg-config
sudo apt-get install lz4 liblz4-dev zstd libzstd-dev 
sudo apt-get install bc libossp-uuid-dev libssl-dev gettext
sudo apt-get install lsb
sudo apt-get install libcurl4-openssl-dev

源码解压、编译

解压命令

tar -zxf postgresql-15.2.tar.gz
cd postgresql-15.2

解压后,进入解压目录,会看到一个 configure 可执行文件。PostgreSQL编译命令如下

./configure --prefix=/home/user/pginstall/pg15.2 --with-openssl --with-libxml --enable-nls --with-uuid=ossp -d
make -j
make install
# 插件编译安装
make -C contrib/ -j
make -C contrib/ install

其中 --prefix 表示安装路径。

PostgreSQL简单使用

安装目录介绍

编译安装完成之后,在安装路径下会生成4个目录,分别是 bin(命令行工具)、include(头文件)、lib(库文件)、share(文档及模板文件等)。

此时就可以进入安装 bin 目录,可以看到有许多命令行工具。

对于初始化、启动、客户端连接只会涉及到三个工具,分别是 initdb 、pg_ctl 、 psql ,其他工具有兴趣的同学可以自行探索,本文不做过多介绍。

初始化实例并登录

# 初始化实例
# -D代表初始化实例的目录;
# -W -A md5 表示使用md5加密用户口令,默认trust模式;
# -U postgres 默认用户名指定为postgres,默认操作系统当前用户名)
./initdb -D data -W -A md5 -U postgres
# 启动实例
./pg_ctl -D data -l logfile start
# 连接实例(默认端口5432)
# -d postgres 表示连接的目标数据库名为 postgres 
# -U postgres 表示连接的目标用户名为 postgres
./psql -d postgres -U postgres

如下:

补充说明

若用户有其他开源PG插件、或者自己编写插件需要进行安装,编译安装步骤如下(例插件名为myextension):

# 拷贝插件目录到PostgreSQL源码的contrib路径下
cp -r myextension postgresql-15.2/contrib/
# 进入插件目录进行编译安装
cd postgresql-15.2/contrib/
make 
make install

安装完成,即可在实例中进行使用(使用sql命令直接创建即可)

create extension myextension;

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aSimpleSheep

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值