PostgresSql在linux下源码安装笔记

本文介绍如何在Redhat Enterprise Linux 7.7上从源码安装PostgreSQL 14.5,并进行基本的配置,包括数据库初始化、环境变量设置、远程访问配置等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

			PostgreSql安装版本是14.5,安装环境是Redhat Enterprise Linux server 7.7

1. 下载源码包并上传

官网下载地址
这里选择14.5版本
在这里插入图片描述
在这里插入图片描述

下载好源码安装包上传linux的/usr/local/src,然后解压

cd /usr/local/src
tar -zxvf postgresql-14.5.tar.gz

在这里插入图片描述
PostgreSql源码安装包解压后的内容如下:
在这里插入图片描述

2. 编译源码并安装

创建postgres用户

useradd postgres

在这里插入图片描述
创建安装目录和启动日志文件

mkdir /usr/local/pgsql
chown  postgres  /usr/local/pgsql
mkdir /usr/local/pgsql/data
chown  postgres /usr/local/pgsql/data
touch /usr/local/pgsql/pgsql.log
chown postgres /usr/local/pgsql/pgsql.log

在这里插入图片描述
检测安装环境

这里需要注意,在编译前一定要安装C compiler(C语言编译器),如果没有安装,执行yum  install  -y  gcc* 安装即可
cd  /usr/local/src/postgresql-14.5
./configure --prefix=/usr/local/pgsql  --without-readline --without-zlib

在这里插入图片描述
编译源码并安装

这个过程需要一会儿,耐心等待。。。
make && make install
看到下图所示,表示编译安装完成。

在这里插入图片描述
初始化数据库

这里需要切换到postgres用户下执行下面命令(不支持root下运行)
su - postgres
cd /usr/local/pgsql/bin
./initdb -D /usr/local/pgsql/data

在这里插入图片描述
启动数据库服务

./pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/pgsql.log start
如下图所示启动成功

在这里插入图片描述
为了方便后面的操作postgres命令,我们切换到root用户下配置一下环境变量

su - root
echo 'export PGHOME=/usr/local/pgsql' >> /etc/profile
echo 'export PGDATA=$PGHOME/data' >> /etc/profile
echo 'export PATH=$PATH:$PGHOME/bin' >> /etc/profile
source /etc/profile
如下图所示,环境变量配置成功

在这里插入图片描述
我们再次切换到postgres用户下,执行postgres的命令看看,是不是很方便了

查询postgres服务状态
pg_ctl status
启动postgres服务
pg_ctl start
重启postgres服务
pg_ctl restart
停止postgres服务
pg_ctl stop

在这里插入图片描述

3. 本地登录PostgreSql

登录数据库不指定用户,默认是以postgres登录postgres数据库
psql

创建数据库用户
create user jamy password  '123456';     创建数据库用户jamy,密码为123456

创建数据库
create database test;      //没有指定数据库所属者
create database test  owner  jamy;     //指定数据库所属者为jamy用户

登录指定用户和数据库登录
psql -U jamy -W test

给数据库授权
grant all privileges on database test to jamy;

查看数据库列表
\l

切换数据库
\c      //切换到test数据库   \c test;

退出数据库用户
\q 或者 exit 或者quit

查看数据库用户权限列表
\du

在这里插入图片描述
在这里插入图片描述

4. 客户端登录PostgreSql

客户端登陆需要修改两个配置文件

cd /usr/local/pgsql/data
vim postgresql.conf
将listen_addresses = ‘localhost’ 改成  listen_addresses = '*'

在这里插入图片描述

vim  pg_hba.conf
在# IPv4 local connections:下面添加如下内容
host    all             all             0.0.0.0/0               password

在这里插入图片描述
然后重启postgres服务

pg_ctl restart

在这里插入图片描述

在用客户端连接之前要关闭防火墙或者是放行5432端口,否则客户端也无法连接

关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
放行5432端口
firewall-cmd --permanent --zone=public  --add-port=5432/tcp
执行完上述命令后重启下服务器,然后启动下数据库服务
 su - postgres
 pg_ctl start
现在可以用navicat客户端连接数据库,这里选择用jamy用户登录test数据库,如下所示连接成功

在这里插入图片描述
创建表
在这里插入图片描述
向刚创建的tb_user插入数据
在这里插入图片描述
查询
在这里插入图片描述
可以看到客户端操作没有问题!!!

### 如何在 Linux安装 PostgreSQL 数据库 #### 准备工作 为了确保顺利安装,在开始之前应确认当前环境中是否已存在旧版本的 PostgreSQL。可以通过如下命令来检查: 对于 RPM 基础系统,可以执行 `rpm -qa | grep postgres` 来查看是否有任何与 PostgreSQL 相关的结果返回[^3]。 如果发现已有安装,则可能需要先卸载这些包以避免冲突;如果没有找到相关记录则可以直接进入下一步操作。 #### 安装过程 针对基于 Red Hat 的发行版(如 CentOS),推荐采用 YUM 软件仓库来进行自动化部署。具体来说就是运行这条指令完成必要的组件下载并安装: ```shell sudo yum install -y postgresql-server postgresql-contrib ``` 上述命令会自动处理依赖关系并将服务器端程序以及一些辅助工具一并加入到操作系统当中去[^2]。 #### 初始化配置 一旦安装成功之后,还需要初始化一个新的集群以便能够启动服务。这一步骤通常只需要做一次即可长期有效使用下去。通过下面这个简单的 shell 指令就可以实现目标: ```shell postgresql-setup initdb ``` 此命令将会创建默认的数据存储目录结构,并设置初始参数文件等内容准备就绪等待后续访问请求的到来。 #### 启动服务 为了让 PostgreSQL 可供外部应用程序调用查询数据等功能支持,务必记得开启其守护进程并且将其设为开机自启项之一。可利用 systemctl 工具轻松达成目的: ```shell systemctl start postgresql.service systemctl enable postgresql.service ``` 以上两条语句分别代表立即激活实例和注册成为持久化任务计划的一部分,从而保证即使重启机器也不会影响正常使用体验。 #### 用户切换与数据库登录 最后要做的便是转换成专门用于管理该产品的超级管理员身份——即名为 "postgres" 的账户,进而获取最高权限级别下的控制权。接着就能借助 psql 终端模拟器连接至核心引擎内部开展更多高级管理工作了: ```shell su - postgres psql ``` 当提示符变为 `(postgres)#` 或者类似的表示形式时说明已经顺利完成整个流程[^4]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下雨天的太阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值