CentOS 环境下 PostgreSQL 在线安装和源码安装详解

1、内容概述

昨天给大家简单的介绍了一下 PostgreSQL,并且在Windows系统上通过图形化界面的方式搭建好了环境,今天我们就来学习一下如何在Linux 系统上搭建 PostgreSQL环境,我会给大家介绍在线安装、离线源码安装以及Docker 安装三种方式。

2、在线安装

2.1、下载安装包

首先我们还是先下载安装包,需要注意的是我们在下载Linux版本的安装包的时候和Windows版本的有些区别,首先我们打开 官方下载链接 PostgreSQL: Downloads

我们选择 Linux 

 然后会出现一个让你选择Linux发行版系统的表单,这里需要大家根据自己的系统环境选择,本次教程我使用的CentOS,所以选择的RedHat

选择完成后会跳转到如下图所示的界面

 我们这里依然选择最新的版本,然后系统选择CentOS7,我的硬件环境是X86架构的,选择好了之后我们仔细看会生成一段命令,内容如下:

# 导入yum源
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# 安装 PostgreSQL 服务
sudo yum install -y postgresql16-server

# 初始化默认的数据库
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
#设置PostgreSQL服务为开机启动
sudo systemctl enable postgresql-16
# 启动PostgreSQL 
sudo systemctl start postgresql-16

2.2、在线安装

我给大家简单的写了一下中文的注释,我们在我们的机器上依次执行上述命令就行了。这种方式必须要能联网(公网)。这里我们先采用在线的方式安装,后面会给大家介绍离线安装的方式

上述过程中 执行安装命令的时候我们会遇到 一个报错

提示找不到 postgresql16-server 这个软件包,这里应该我的系统版本有关,这里我们先选择15试试,选择15后 又出现了一个报错

说是我的libzstd 版本不符合要求,好吧 我们选择14的版本试试(后面我们通过编译源码安装的方式安装最新的版本) ,执行 yum install postgresql14-server  命令

好家伙,我们安装成功了。

2.3、初始化数据库

接下来我们启动服务试试,命令如下

sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14

这里我们的PG服务成功的启动了。

2.4、配置远程登陆

需要注意的是在上述安装过程中会自动的创建一个postgres的用户,我们需要先切换到这个用户下

接着我们需要修改密码,首次登陆我们使用psql命令 登录到控制台

这里我将 postgres 用户的密码设置成了 postgres

 修改完成后退出 postgres 用户,我们在root用户下开放pg默认的端口

firewall-cmd --add-port=5432/tcp --permanent

firewall-cmd --reload

开放5432端口后,我们能就可以远程登陆到pg了,对了我们还需要修改一下配置文件

# 1、修改 postgresql.conf
vim /var/lib/pgsql/14/data/postgresql.conf

# 文件末尾添加
listen_addresses='*'

# 2、修改 pg_hba.conf 
vim /var/lib/pgsql/14/data/pg_hba.conf

# 添加所有ip都能访问
host    all             all             0.0.0.0/0  

# 3、重新启动pg服务
systemctl restart postgresql-14

 最后重启完成后,我们就可以远程登陆了

2.5、远程登陆测试

我们 使用本地的idea连接到pg

至此我们在Linux系统下在线安装PG的过程已经结束了,是不是感觉很麻烦,下面我给大家介绍通过docker的方式安装,我们只需要一条命令即可安装成功。

3、Docker安装

3.1、卸载postgres

为了避免各种问题 我们先把刚刚安装的 PG 卸载掉,依次输入以下命令

## 删除相关的安装文件
yum remove postgresql*

## 删除相关的目录
rm -rf /var/lib/pgsql
rm -rf /usr/pgsql-14/

## 查看是否清理干净
rpm -qa | grep postgresql

需要注意的是写在之前需要将pg服务停掉。写在完成后我们继续通过docker 的方式进行安装

3.2、Docker 安装

我们执行以下命令进行安装

docker run -d   --name postgres    -e POSTGRES_PASSWORD=123456   -p 5432:5432   -v /opt/data/postgres/data:/var/lib/postgresql/data   -d postgres

安装成功后我们可以查看下docker 进程

发现已经启起来了。

3.3、测试连接

接着我们使用 idea 连接一下试试

我们发现依然可以正常的连接上,至此两种在线安装的方式都给大家介绍完毕了

4、源码编译安装 

4.1、下载源码包

首先我们下载源码包,下载最新版本的 16.3 

wget https://ftp.postgresql.org/pub/source/v16.3/postgresql-16.3.tar.gz

接下来需要安装 postgresql 需要的依赖包 

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

4.2、源码编译安装

下载成功后我们可以解压源码包,并且编译pg的源码,生成可执行文件

## 解压源码包
tar -zxvf postgresql-16.3.tar.gz 

##
cd postgresql-16.3

## 生成 Makefile
./configure --prefix=/usr/local/postgresql-16.3 --without-icu

## 编译并安装
make && make install 

4.3、初始化数据库

安装完成后我们需要初始化数据库

## 创建用户和组
groupadd postgres
useradd -g postgres postgres

## 切换到postgres用户
su - postgres 
## 初始化数据库
initdb

初始化完成后 data 目录下会生成相关的配置文件

 下面我们需要修改配置文件了,我们先修改 pg_hba.conf文件


vim pg_hba.conf

## 配置局域网访问
host    all             all             0.0.0.0/0               trust

继续我们修改  vim postgresql.conf  添加以下配置

 好了,相关的配置工作已经完成了,下面我们就可以启动PG 服务了

4.4、启动服务

postgresql 的启动脚本位于源码目录的contrib/start-scripts 目录下,如下图所示

其中liux 就是Linux环境下的启动脚本,我么可以先看下内容

需要修改prefix 和PGDATE这两行配置,修改完我们就可以启动了,我们可以把这个文件复制到安装目录,并修改一下文件名

## 复制脚本到安装目录 并修改脚本名
 cp linux /usr/local/postgresql-16.3/startup-pg

## 来到安装目录
cd /usr/local/postgresql-16.3/

## 添加执行权限
chmod a+x startup-pg

## 启动服务
./startup-pg start

启动完成后 我们可以查看进程和端口

4.5、登陆测试

我们打开idea  测试登陆

这里我们发现可以正常连接,细心的你肯定发现了一个问题 我们这个postgres用户 没有设置密码,对的 postgres用户初始的时候就是没有密码的,所以我们在这里不需要输入密码也可以连接到pg服务。后面给大家介绍postgresql的用户管理的时候会给大家详细的介绍pg的用户相关的最佳实践。

 

 

 

 

 

 

 

 

 

`

  • 19
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值