Linux 源码安装: PostgreSQL 15.6数据库

Linux 源码安装: PostgreSQL 15.6数据库

  • 1、下载 postgresql-15.6.tar.gz 源码包
  • 2、安装postgresql-15.6
    • 2.1、解压 tar.gz 文件
    • 2.2、进入解压后的目录
    • 2.3、创建 "postgres" 用户和对应的用户组
    • 2.4、创建data目录,授权
    • 2.5、编译 PostgreSQL
    • 2.6、再次编译检查
    • 2.7、安装 PostgreSQL
    • 2.8、初始化数据库
    • 2.9、启动 PostgreSQL 服务
  • 3、配置环境变量(postgres用户)
    • 3.1、编辑环境变量配置文件
    • 3.2、使配置生效:
    • 3.3、验证配置是否成功
  • 4、设置开机时自动启动
  • 5、远程登录配置


💖The Begin💖点点关注,收藏不迷路💖

🍒 PostgreSQL 中文文档

1、下载 postgresql-15.6.tar.gz 源码包

下载地址:https://www.postgresql.org/ftp/source/

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

2、安装postgresql-15.6

2.1、解压 tar.gz 文件

tar -zxvf postgresql-15.6.tar.gz

2.2、进入解压后的目录

cd postgresql-15.6

在这里插入图片描述

2.3、创建 “postgres” 用户和对应的用户组

groupadd -g 500 postgres

useradd -u 501 -g 500 postgres

在这里插入图片描述

2.4、创建data目录,授权

mkdir /usr/local/pgsql/data
chown postgres:postgres /usr/local/pgsql/data

在这里插入图片描述

2.5、编译 PostgreSQL

## 编译
./configure

在这里插入图片描述

缺少readline library,检查系统是否安装readlilne包。

rpm -qa | grep readline


安装readline-devel包

yum -y install -y readline-devel.x86_64

在这里插入图片描述

2.6、再次编译检查

## 编译
./configure

在这里插入图片描述

2.7、安装 PostgreSQL

## 安装
make  &&  make install

安装结果:

在这里插入图片描述

2.8、初始化数据库

## 切换postgres用户

su - postgres

## 其中 -D 用来指定要初始化的数据库目录的路径。
## /usr/local/pgsql/data 是指定的数据库数据目录路径,也就是存储数据库文件的位置。

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

在这里插入图片描述

2.9、启动 PostgreSQL 服务

[postgres@zyl-server ~]$ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
waiting for server to start.... done
server started
[postgres@zyl-server ~]$

3、配置环境变量(postgres用户)

3.1、编辑环境变量配置文件

vi ~/.bashrc ,如果全局的则编辑/etc/profile。

vi ~/.bashrc

##在文件中添加以下内容来设置 PostgreSQL 的环境变量

export PATH=$PATH:/usr/local/pgsql/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib

在这里插入图片描述

3.2、使配置生效:

source ~/.bashrc

3.3、验证配置是否成功

可以执行以下命令查看 PostgreSQL 版本信息:

postgres --version

在这里插入图片描述

4、设置开机时自动启动

1、创建一个名为 postgresql.service 的服务单元文件:

编辑 /etc/systemd/system/postgresql.service 文件(需要 root 权限)。

vim /etc/systemd/system/postgresql.service

在文件中添加以下内容:

[Unit]
Description=PostgreSQL database server
After=network.target

[Service]
Type=forking
User=postgres
ExecStart=/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data -l /usr/local/pgsql/data/logfile.log
ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D /usr/local/pgsql/data

[Install]
WantedBy=multi-user.target

在这里插入图片描述
2、重新加载 systemd 管理的单元文件和启用 PostgreSQL 服务:

[root@zyl-server ~]# sudo systemctl daemon-reload

[root@zyl-server ~]# sudo systemctl enable postgresql
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql.service to /etc/systemd/system/postgresql.service.
[root@zyl-server ~]# 

3、验证设置:
机器重启后, 查看 PostgreSQL 服务 状态。

sudo systemctl start postgresql      # 启动 PostgreSQL 服务
sudo systemctl stop postgresql       # 停止 PostgreSQL 服务
sudo systemctl restart postgresql    # 重启 PostgreSQL 服务
sudo systemctl status postgresql     # PostgreSQL 服务 状态查看

在这里插入图片描述

5、远程登录配置

❤️‍🔥 具体配置见:https://zuiyl.blog.csdn.net/article/details/136916591

7、创建数据库和表、远程用户zyl
8、pgAdmin远程访问该数据库(db_pg01)

需要进行以下步骤:

1、修改 postgresql.conf 文件:

找到 postgresql.conf 配置文件,通常在 PostgreSQL 的数据目录下,比如 /usr/local/pgsql/data/postgresql.conf。

找到并修改 listen_addresses 选项,将其设置为 ‘*’,表示允许来自任何 IP 地址的连接:

listen_addresses = '*'

2、修改 pg_hba.conf 文件:

找到 pg_hba.conf 文件,该文件也通常位于 PostgreSQL 的数据目录下,比如 /usr/local/pgsql/data/pg_hba.conf。

在文件末尾添加允许远程访问的规则,例如允许所有IP地址的访问:

host    all             all             0.0.0.0/0               md5

3、重启 PostgreSQL 服务:

在完成上述修改后,需要重新启动 PostgreSQL 服务,使配置生效。


[postgres@zyl-server ~]$ systemctl restart postgresql

或者

[postgres@zyl-server ~]$ pg_ctl restart -D /usr/local/pgsql/data

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/479307.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Qt】使用Qt实现Web服务器(五):QtWebApp上传文件、详解请求数据处理过程

1、示例 1)演示 2)上传图片 3)显示图片 2、源码 示例源码Demo1->FileUploadController void FileUploadController::service(HttpRequest& request, HttpResponse& response)

Linux docker7--私有镜像仓库registry和UI搭建及使用

一、对于开源的镜像,如redis,nginx等,可以通过官方仓库Docker Hub,或者国内的阿里云等共有仓库下载获取到镜像。但是企业内对于自己的研发产品不可能往公共仓库去发布镜像的,一般都会搭建私有的镜像仓库,保…

快速排序(递归)

快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为:任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大…

哲♂学家带你深♂入了♂解结构体及结构体内存大小问题

目录 概要 一、结构体的声明 二、结构体变量的创建和初始化 三、结构体的特殊声明 四、结构体内存对齐 1、对齐原则 2、例一 对齐数 计算方法 3、例二 总结 概要 结构体是我们日常编程中经常要用到的一种自定义类型,使用起来也是十分的方便。接下来就由…

Git常用操作命令

Git常用操作命令 前言 Git是一个分布式版本控制系统,用于跟踪和管理软件开发项目的版本历史。Git 是我们日常工作中使用频率极高的工具,各种指令让人眼花缭乱,这里对Git的一些相关命令进行总结。 常用命令 一般来说,日常使用g…

今日AI:Gemini Pro1.5向所有人开放;Stable Diffusion核心团队集体离职;HeyGen5.0上线视频翻译功能;剪映内测视频翻译功能

欢迎来到【今日AI】栏目!这里是你每天探索人工智能世界的指南,每天我们为你呈现AI领域的热点内容,聚焦开发者,助你洞悉技术趋势、了解创新AI产品应用。 新鲜AI产品点击了解:AIbase - 智能匹配最适合您的AI产品和网站 &#x1f91…

十七、LockSupport

TestLockSupport 淘宝面试题:实现一个容器,提供两个方法,add,size。写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数,当个数到5个时,线程2给出提示并结束面试题:写一个固定容量同步容器,拥有put和get方法,以及 getcount方法,能够支持2个生产者线程以…

企业数字化转型:是竞争力的关键,还是行业炒作?

企业作为市场经济活动的核心主体,其角色已经从传统的资源集聚和生产组织形式逐步演变为数据驱动、智能决策的创新引擎。数字化转型对于企业而言,并非炒作概念,而是实实在在提升竞争力的关键路径。 什么是企业? 企业是市场经济体系…

网络安全是什么? 为什么要学网络安全 ?网络安全怎么学习?

网络安全是什么? 网络安全是指保护计算机网络、网络设备、应用程序、数据和用户免受非法访问、攻击、破坏或泄漏的过程和技术。网络安全包括多个领域,例如网络防御、漏洞管理、加密技术、身份验证和访问控制等等。 网络安全非常重要,因为现…

【C++】string类模拟实现

个人主页 : zxctscl 如有转载请先通知 文章目录 1. 前言2. 构造函数和析构函数3. 遍历3.1 下标[]3.2 迭代器 4. Modifiers4.1 push_back和append4.2 4.3 insert4.4 erase4.5 swap 5.Capacity5.1 resize5.2 clear 6. 深浅拷贝6.1 浅拷贝(值拷贝&#xff0…

【MySQL】基本查询(1)

【MySQL】基本查询(1) 目录 【MySQL】基本查询(1)表的增删改查Create单行数据 全列插入多行数据 指定列插入插入否则更新替换 RetrieveSELECT 列全列查询指定列查询查询字段为表达式为查询结果指定别名结果去重 WHERE 条件英语不…

【MySQL】3.2MySQL事务和存储引擎

MySQL事务 一、MySQL事物的概念 事务是一种机制,包含了一件事的完整的一个过程 ●事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么…

关于java字节码文件加载过程中,各种变量和常量的存储位置

java变量存储位置 前提 下面的东西都是在jdk1.8基础上做出的探究 首先我们先解释一下在各种网站上出现的一些名词到底是什么? 1.字面量:声明为final的int、long、double、char等基本类型的常量值(如final int a 1 这是一个常量值&#x…

宝塔面板系列——两种方式安装青龙面板

因为最近旧windows服务器到期了,在搬服务器,新服务器尝试用Linux系统。过程中有很多不懂的地方,只能边搬迁边学边弄,顺带记录下来,哪天又要搬迁了,翻翻自己的文章也就一应俱全了。 非科班出身,选…

yarn安装包时报错error Error: certificate has expired

安装教程: 配置镜像地址: npm config set registry https://registry.npmmirror.com//镜像:https://developer.aliyun.com/mirror/NPM 安装yarn: npm install --global yarn查看版本: yarn --version卸载&#xff…

力扣题库27题移除元素(c语言)

解法&#xff1a; int removeElement(int* nums, int numsSize, int val) {int src0,dst0;while(src<numsSize){if(nums[src]val){src;}else{nums[dst]nums[src];src;dst;}}return dst; }

Vue el-table 合并单元格

一般常见的就是下图这种的单列&#xff0c;上下重复进行合并。 有时候可能也会需要多行多列的合并。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content&qu…

搭建GItlab实现自动化部署Springboot项目(超详细)

提示&#xff1a;本例程中使用Docker搭建GItlab&#xff0c;Gitlab runner 通过编写CICD文件实现Springboot项目自动部署。 1、拉取GitLab镜像 命令&#xff1a; docker pull gitlab/gitlab-ce2、部署Gitlab&#xff1a; 我们通过docker搭建的gitlab部署项目的时候会出现一个…

Springboot+Vue前后端分离的在线商城系统

项目介绍 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本ONLY在线商城系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据…

PHP页面如何实现设置独立访问密码

PHP网页如果需要查看信息必须输入密码&#xff0c;验证后才可显示出内容的代码如何实现&#xff1f; 对某些php页面设置单独的访问密码,如果密码不正确则无法查看内容,相当于对页面进行了一个加密。 如何实现这个效果&#xff0c;详细教程可以参考&#xff1a;PHP页面如何实现…