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;