Linux CentOS7 离线安装PostgreSQL 9.6.10(源码编译)

最近研究PostgreSQL,需要部署在Linux服务器上。在实际生产环境中,服务器通常是不会连接外网的,因此本人参考官方文档和网上相关资料,总结出在离线环境下Linux服务器(CentOS7)以源码编译的方式安装PostgreSQL的详细步骤如下:

一、准备编译环境

检查服务器上是否存在gcc-c++的环境,使用命令:

rpm -qa | grep gcc-c++

如果没有该环境,则需要安装该环境,离线安装步骤为:

1、获取相关rpm包,将其存放到服务器上某一路径

这里有两种方式:

方式1:从centos7的系统安装镜像中提取:解压镜像文件,进入"Packages"目录,取出如图1所示rpm包

方式2:访问镜像网站获取:http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/ ,然后将其上传

                                                                                 图1 

2、安装rpm包。进入该路径,使用命令:

rpm -Uvh *.rpm --nodeps --force

然后使用

gcc -v
g++ -v

查看gcc版本和g++版本,会看到详细的版本信息,安装完成。

二、下载postgresql源码包

浏览器访问 https://www.postgresql.org/ftp/source/,选择对应版本,如图2所示

                                                                                图2

点击之后,下载对应的tar.gz源码包,然后将其上传到服务器指定路径。

三、解压postgresql源码包

输入解压命令,其中 "-C"后面的为解压缩后的路径:

tar -zxvf postgresql-9.6.10.tar.gz -C /bigdata/soft

四、编译安装

进入解压后目录,通过命令 ./configure --help 可以看到配置相关的帮助信息,如图3所示

                                                                          图3

其中,--prefix=dir 可以指定安装目录:

./configure --prefix=/bigdata/work/postgresql

执行命令后,会进行配置过程,如果缺少相关包,则会导致配置失败,如图4所示

                                                                            图4

通过命令 rpm -qa | grep readline 发现,服务器上是存在readline包的,如图5所示

                                                                           图5

出现这种情况一般是缺少相关 devel 包,即这里缺少了 readline-devel 包。这里仍采取步骤一讲述的方法进行获取以及安装,如图6所示(readline-devel依赖于ncurses-devel,注意先后次序)

                                                                          图6

安装完成后,回到postgresql源码包的解压目录,再次执行之前的配置命令

cd /bigdata/soft/postgresql-9.6.10
./configure --prefix=/bigdata/work/postgresql

可以看到提示创建了config.status配置文件,如图7所示

                                                                          图7

依次执行如下命令,进行编译安装(编译时间视机器性能而定,请耐心等待)

make
make install

如果分别看到如图8所示提示,则说明编译安装成功。

                                                                      图8

五、相关配置

1、创建用户

root用户不能启动postgresql,所以需要创建一个普通用户来启动数据库,如图9所示,创建用户并设定登录口令

                                                                       图9

2、设定权限

在postgresql目录下创建目录 data(数据库存储)log(日志存储),然后将postgresql的目录权限全部赋予给postgres用户。

chown -R postgres:postgres /bigdata/work/postgresql

3、配置环境变量

使用命令 vim /etc/profile 配置环境变量,向其中追加如下内容:

export PGDATA=/bigdata/work/postgresql/data
export PGHOME=/bigdata/work/postgresql
export PATH=$PGHOME/bin:$PATH

修改完成后,使用命令 source /etc/profile,使得配置生效。

4、初始化数据库

切换为 postgres 用户,使用 initdb --help 可以看到初始化数据库的帮助信息,如图10所示

                                                                         图10

如图10红框中文字所示,由于之前在配置文件中已经设定了环境变量 PGDATA ,因此可以直接使用命令 initdb 来完成数据库初始化操作。

5、配置数据库

进入 */postgresql/data 目录,使用命令 vim pg_hba.conf ,配置对数据库的访问控制(设置为可以通过密码访问)。如图11所示

                                                                         图11

然后,使用命令 vim postgresql.conf ,配置数据库参数(设置服务器监听整个网络,设置端口号为5432)。如图12所示

                                                                         图12

6、关闭防火墙(root用户)

使用命令 systemctl status firewalld.service 查看防火墙状态,如图13所示

                                                                          图13

可以看见服务器防火墙处于开启状态,使用命令 systemctl stop firewalld.service 关闭防火墙。(ps:使用命令 systemctl disable firewalld.service ,可以停用防火墙开机自启)

7、配置系统服务(root用户)

进入postgresql源码包的解压目录(本文为 /bigdata/soft/postgresql-9.6.10 ),执行命令 cp contrib/start-scripts/linux /etc/init.d/postgresql,然后 vim /etc/init.d/postgresql,进行配置修改,如图14所示

                                                                                  图14

然后使用命令 chmod +x /etc/init.d/postgresql,赋予该文件执行权限。另外,还可以使用命令 chkconfig --add postgresql,设置服务开机自启。

8、启动及连接数据库

使用命令 service postgresql start,启动数据库服务。可以通过 ps -ef|grep postgres,查看postgres相关进程。如图15所示。

                                                                                  图15

启动成功后,可以通过 postgresql 自带的客户端工具 psql 来进行连接,postgresql用户直接输入 psql 看到版本信息则说明连接成功。然后,使用 “\password”,设置密码。如图16所示

                                                                                  图16

最后也是最重要的一步,就是验证非本地客户端工具的连接。本文选择的工具是Navicat Premium,在主机(Windows7)打开Navicat与虚拟机中的postgresql服务器进行连接测试,如图17所示

                                                                                   图17 

可以发现连接成功。另外,可以使用命令service postgresql stop(非root用户执行后需要输入密码,root用户可以直接执行)停止数据库服务。至此,关于源码编译安装postgresql的全过程到此结束。

总结

 以上就是Linux离线环境下源码编译安装PostgreSQL的全过程,希望本文可以对遇到同样问题的朋友提供一些帮助。

CentOS 7离线安装PostgreSQL的步骤如下: 1. 首先,在一台联网的CentOS 7机器上下载所需的PostgreSQL安装包。可以在官方网站(https://www.postgresql.org/)上找到最新的发布版本。选择适用于CentOS 7的RPM安装包,并下载到本地。 2. 将下载好的RPM安装包以及其所有依赖的RPM安装包打包成一个tar.gz压缩包,方便在离线环境中使用。 3. 将这个压缩包复制到目标机器上。 4. 在离线环境的CentOS 7机器上,解压缩这个打包好的压缩包。 5. 在解压缩的目录中,打开终端,并以root用户身份执行以下命令以安装PostgreSQL及其依赖: ``` rpm -ivh *.rpm ``` 其中,`*.rpm`是指安装包所在的目录下所有RPM安装包的通配符。 6. 安装完成后,需要进行一些基本的配置,例如创建数据库管理员用户、启动数据库服务以及设置开机自启动等。具体的配置步骤可以参考PostgreSQL官方文档。 注意事项: - 离线安装PostgreSQL时,需要确保所下载的RPM安装包与目标机器的CentOS 7版本和硬件架构相匹配,否则可能导致安装异常或不成功。 - 离线安装时,需提前了解PostgreSQL所需的所有依赖,并确保在目标机器上已经安装了这些依赖的RPM包,否则安装过程将会失败。可以通过在联网环境中运行以下命令查看依赖关系: ``` yum deplist *.rpm ``` 以上是CentOS 7离线安装PostgreSQL的简要步骤,具体操作可能会因实际情况而有所差异。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值