PostgreSQL源码编译安装详细教程(linux环境)


前言

本文采用make源码编译安装PostgreSQL方式,尽管相较于yum安装方式,该方式略微复杂,但为了便于管理和维护(例如:便于指定数据库安装目录、修改参数、安装扩展等),故以下详细介绍该安装方式。

一、下载指定版本的源码安装包

源码安装包下载地址:http://www.postgresql.org/ftp/source/
如下图,本文以下载14.7版本为例
在这里插入图片描述

二、安装依赖包

1、连网环境安装

yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmake

2、离线环境安装

连网环境采用以下方式下载包,然后copy至离线环境即可。
离线依赖包下载地址:https://pkgs.org/

# 使用yumdownloader下载
# 安装yum-utils包,内部包含yumdownloader等命令
yum install yum-utils
# 例如下载docker.x86_64包
yumdownloader --resolve --destdir=/pack docker.x86_64
# 离线环境使用下面命令安装包
rpm -ivh  *.rpm  --nodeps  --force

三、安装PostgreSQL数据库

1、创建安装目录并解压安装包

# 创建安装目录
mkdir -p /pgsql/postgresql
# 上传至安装目录并解压安装包
tar -zxvf postgresql-14.7.tar.gz

2、配置PostgreSQL源码

# 进入解压后的文件夹
cd postgresql-14.7
# 配置源码
./configure --prefix=/pgsql/postgresql

该过程可根据需要指定编辑参数,例如参数说明如下:

–prefix=prefix:安装到prefix指向的目录;默认为/usr/local/pgsql
–bindir=dir:安装应用程序到dir;默认为prefix/bin
–with-docdir=dir:安装文档到dir;默认为prefix/doc
–with-pgport=port:设置默认的服务器端网络连接服务TCP端口号
–with-tcl:为服务端提供Tcl存储过程支持
–with-perl:为服务端提供Perl存储过程支持
–with-python:为服务端提供Python存储过程支持
3、编辑安装

# 确保进入解压安装包的目录
cd /pgsql/postgresql/postgresql-14.7
# 编辑安装
make && make install

4、创建用户、组、数据目录
这个数据库主目录可随实际情况而不同,这里我们的主目录是在/pgsql/postgresql/data目录。

# 创建组
groupadd postgres
# 创建用户
useradd -g postgres postgres
# 创建数据目录
mkdir –p /pgsql/postgresql/data
# 修改目录归属
chown postgres:postgres /pgsql/postgresql/data

5、配置环境变量
root用户执行以下操作

# 编辑修改.bash_profile文件
vi /home/postgres/.bash_profile

文件末尾增加以下内容:
export PGHOME=/pgsql/postgresql
export PGDATA=/pgsql/postgresql/data
PATH= P A T H : PATH: PATH:HOME/bin:$PGHOME/bin

# 使修改的.bash_profile文件立即生效
source /home/postgres/.bash_profile

6、初始化数据库
出现下图信息表示安装完成。

# 切换至postgres用户
 su - postgres
# 使用initdb命令初始化数据库
initdb

在这里插入图片描述

三、配置服务

为了让数据库使用更方便,可以修改/pgsql/postgresql/data目录下的两个文件:
postgresql.conf :配置PostgreSQL数据库服务器的相应的参数。
pg_hba.conf :配置对数据库的访问权限。

vi /pgsql/postgresql/data/postgresql.conf 

修改内容:

listen_addresses = '*' 

其中,参数“listen_addresses”表示监听的IP地址,默认是在localhost处监听,也就是127.0.0.1的ip地址上监听,只接受来自本机localhost的连接请求,这会让远程的主机无法登陆这台数据库,如果想从其他的机器上登陆这台数据库,需要把监听地址改为实际网络的地址,一种简单的方法是,将行开头的#去掉,把这个地址改为*,表示在本地的所有地址上监听。

vi /pgsql/postgresql/data/pg_hba.conf
# 以下第一条为增加内容
host    all             all             0.0.0.0/0               trust
host    all             all             127.0.0.1/32            trust

添加第一条后 ,这样局域网的人才能访问

四、设置PostgreSQL开机自启动

1、修改启动脚本
PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的contrib/start-scripts路径下。
文件名为linux的文件即为linux系统上的启动脚本。

# copt至系统的/etc/init.d/目录并命名为postgresql
cp /pgsql/postgresql-14.7/contrib/start-scripts /etc/init.d/postgresql
# 修改/etc/init.d/postgresql文件的两个变量
vi /etc/init.d/postgresql

修改内容:
prefix设置为postgresql的安装路径:/pgsql/postgresql
PGDATA设置为postgresql的数据目录路径:/pgsql/postgresql/data
在这里插入图片描述

2、设置开机自动动

# 设置postgresql服务开机自启动
chkconfig --add postgresql

五、开放端口并启动数据库

# 开放5432端口
irewall-cmd --zone=public --add-port=5432/tcp --permanent
# 配置立即生效
firewall-cmd --reload
# 启动数据库
pg_ctl start

查看postgresql进程,出现下图信息表示启动成功

ps -ef | grep postgres

在这里插入图片描述

总结

参照本文可以保证安装程序,路径及配置信息可根据自己需要进行修改。

猜你喜欢

转载自blog.csdn.net/ma286388309/article/details/129010124#comments_28309352