CentOS7 编译安装PostgreSQL

2023-09-26 09:11:24 124

CentOS7 编译安装PostgreSQL

一、下载并解压源码包

官网 https://www.landui.com/download/ 下载源码包就好,我这里下载的是postgresql-15.4.tar.gz。
image.png

然后将源码包拷贝到Linux系统中或者直接使用wget下载到系统中

wget http://www.landui.com/pub/source/v15.4/postgresql-15.4.tar.gz

image.png 

建议将源码包放在/usr/local/src文件夹下,因为这个文件夹通常是系统管理员放置源码包的地方,约定俗成,便于管理。同时也建议使用root用户来安装软件,否则安装过程可能会提示权限不够。

解压源码包:

image.png 

image.png 

解压成功!

二、查看INSTALL与README等相关文件

INSTALL和README是软件厂商放置在源码包中的说明文件,阅读它们有助于我们安装软件。

进入postgresql-15.4目录,查看文件列表:

image.png 

由于我们是在安装PostgreSQL,所以查看INSTALL文件就好,使用vi查看INSTALL文件:

image.png 

可以发现,INSTALL文件中说明了安装的步骤:

image.png 

三、检测环境,并建立makefile

刚才解压出的postgresql-15.4目录下的configure可执行文件,可以用于检测系统环境(比如检测是否有合适的编译器,是否存在本软件所需要的函数库等等)。

检测完后,configure程序还会帮助我们创建GNUmakefile或makefile文件,这是一个用于宏编译的文件,简单来说就是能够帮我们自动操作许多编译步骤的脚本文件。

那现在就来运行configure程序,并且加上参数--prefix,这个参数用于指定软件安装的位置:

./configure --prefix=/usr/local/pgsql

image.png 

我这里指定PostgreSQL安装在/usr/local/pgsql中。

报错:configure: error: readline library not found

解决方案

安装失败时会提示执行 ./configure 加上 --without-readline 选项,不编译 readline:

If you have readline already installed, see config.log for details on the

failure.  It is possible the compiler isn't looking in the proper directory.

Use --without-readline to disable readline support.

但是不建议这样做,readline 的作用是能够在 pg 控制台读取历史命令,就像在 linux shell 中按上下键读取历史命令,不需要再手动输入重复的命令

可安装如下依赖解决该问题:

yum install -y readline-devel

重新执行./configure --prefix=/usr/local/pgsql

查看postgresql-15.4目录的文件列表:

image.png 

果然生成了GNUmakefile文件!

四、编译

有了GNUmakefile文件,现在就可以使用make命令来编译了:

make clean; make

编译过程可能需要几分钟时间。

编译完成后,等待安装

五、安装

接下来,直接安装,安装的位置就是刚才前面执行configure程序时设置的位置:

make install

安装成功查看/usr/local目录的文件列表,可以发现PostgreSQL成功安装在该目录:

image.png 

六、创建postgres用户和创建data文件夹

创建一个postgres用户来操作数据库:

adduser postgres

/usr/local/pgsql目录下创建data文件夹:

image.png 

改变data文件夹的所有者为postgres:

chown postgres /usr/local/pgsql/data

七、配置环境变量

切换到postgres用户:

image.png 

编辑postgres家目录下的.bashrc文件

vi .bashrc

image.png 

编辑完成后,按esc,输入wq保存退出,重新启用一下配置文件:

source .bashrc

八、初始化数据库并设置postgres用户的密码

初始化数据库:

Initdb

image.png 

启动数据库:

pg_ctl start

image.png 

设置postgres这个用户的密码:

pgsql -U postgres

image.png 

九、设置监听

修改/usr/local/pgsql/data下的pg_hba.conf配置文件,将IPv4 local connections下面的一行改为如下所示:
vi /usr/local/pgsql/data/pg_hba.conf

image.png 

修改/usr/local/pgsql/data下的postgresql.conf配置文件,修改为如下所示:

vi /usr/local/pgsql/data/postgresql.conf

image.png 

重启PostgreSQL服务:

pg_ctl restart

十、远程连接PostgreSQL

现在在Windows操作系统中便可以使用远程连接工具连接刚才在Linux中安装的PostgreSQL


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: