PG系列4:linux下编译安装PG15

news2025/1/9 1:29:50

文章目录

  • 一. 源码安装
    • 1.1 下载并解压
    • 1.2 安装依赖包
    • 1.3 开始编译安装
    • 1.4 创建用户
    • 1.5 创建目录及修改权限
    • 1.6 设置环境变量
    • 1.7 初始化数据库
    • 1.8 启动和关闭数据库
  • 二. 验证
    • 2.1 查看数据库后台进程
    • 2.2 验证和登陆数据库
    • 2.3 查看数据库版本
    • 2.4 查看数据库运行状态
    • 2.5 修改白名单
      • 2.5.1 备份
      • 2.5.2 编辑配置文件
      • 2.5.3 重新加载配置文件
    • 2.6 设置开机自启动
      • 2.6.1 配置服务脚本
      • 2.6.2 修改/etc/init.d/postgresql的内容
      • 2.6.3 设置开机启动
  • 参考:

一. 源码安装

1.1 下载并解压

cd /usr/local 
wget https://ftp.postgresql.org/pub/source/v15.3/postgresql-15.3.tar.gz
tar -zxvf postgresql-15.3.tar.gz
cd postgresql-15.3

1.2 安装依赖包

yum install -y bison flex readline-devel zlib-devel gcc libxml2 libxml2-devel lz4 systemtap-sdt-devel perl-ExtUtils-Embed perl-ExtUtils-MakeMaker  openssl openssl-devel pam pam-devel libxslt libxslt-devel systemd-devel tcl tcl-devel

1.3 开始编译安装

PG的编译安装比MySQL快很多

./configure --prefix=/usr/local/postgres/ --with-libxml --with-lz4 --enable-debug --with-perl --with-tcl --with-gssapi --with-pam --with-openssl --with-pam --without-ldap --with-libxml --with-libxslt --enable-dtrace --enable-depend --enable-cassert --with-systemd

gmake world && gmake install-world

–注:请根据自己的实际情况选择需要安装的模块

编译时指定wal_compression支持的压缩外部库

配置标志 –with-lz4 和 –with-zstd 分别用于 lz4 和 zstd。

如果数据库工作负载受 CPU 限制,则可以选择 Lz4 压缩,因为它对 CPU 的影响很小。它可以提供非常接近 pglz 的压缩,而不会导致高 CPU 开销。
如果服务器负载不受 CPU 限制,则可以选择 Zstd,因为它可以以牺牲更多 CPU 利用率为代价为我们提供更好的压缩。(Zstd的压缩率比Lz4多30%)

注意:
在Linux中,PostgreSQL的编译和安装使用GNU make程序,在编译使用make命令,安装使用make install命令。如果希望在编译和安装时,一次性将文档及附加模块全部进行编译和安装,可以使用gmake world命令和gmake install-world命令。对于已经安装的数据库,再单独对文档和附加模块进行编译和安装也是可以的,但是仍然推荐使用带有world的编译和安装命令一次做完这些事情,这样可以保证网络中所有数据库软件的一致性,也避免给后期维护工作带来麻烦。

1.4 创建用户

groupadd -g 2000 postgres
useradd -g 2000 -u 2000 postgres
id postgres
groupmod -g 2000 postgres
usermod -u 2000 -g 2000 postgres

image.png

1.5 创建目录及修改权限

mkdir -p /data/pgdata/{data,backups,scripts,archive_wals}
mkdir -p /data/pgdata/pg_wal
chown -R postgres.postgres /data/pgdata/
chmod 0700 /data/pgdata/

image.png

1.6 设置环境变量

vi /etc/profile

export PGHOME=/usr/local/postgresql
export PGDATA=/data/pgdata/data
export PGLIB=/usr/local/postgresql/lib
export LC_ALL=en_US.UTF8
export LANG=en_US.UTF8
PATH=/usr/local/postgres/bin:$PATH
export PATH

source /etc/profile

1.7 初始化数据库

su - postgres
# 此处需要设置密码
 /usr/local/postgres/bin/initdb -D /data/pgdata/data/ -X /data/pgdata/pg_wal -W

image.png

1.8 启动和关闭数据库

su - postgres
# 启动数据库
pg_ctl -D /data/pgdata/data/ -l /data/pgdata/data/logfile start
pg_ctl -D /data/pgdata/data/ -l /data/pgdata/data/logfile stop

image.png

二. 验证

2.1 查看数据库后台进程

ps -ef|grep postgres

image.png

2.2 验证和登陆数据库

su - postgres
pg_isready -p 5432
psql -p 5432 -U postgres -d postgres

image.png

2.3 查看数据库版本

postgres --version

image.png

2.4 查看数据库运行状态

pg_ctl -D /data/pgdata/data/ status

image.png

2.5 修改白名单

PostgreSQL默认不允许远程访问数据库,可以通过修改监听地址、修改pg_hba.conf文件来实现远程访问。

2.5.1 备份

cd /data/pgdata/data/
cp postgresql.conf postgresql.confbak
cp pg_hba.conf pg_hba.confbak

2.5.2 编辑配置文件

编辑postgresql.conf文件,将配置文件中listen_address的值由“localhost”修改为要监听的地址,也可以修改为“*”,表示允许所有,然后重启数据库。

vi postgresql.conf
pg_ctl -D /data/pgdata/data/ restart

修改pg_hba.conf文件

echo "host postgres postgres 0.0.0.0/0 md5" >>pg_hba.conf

2.5.3 重新加载配置文件

 pg_ctl -D /data/pgdata/data/ reload

image.png

2.6 设置开机自启动

如果使用官方yum源安装,会自动配置服务脚本;如果通过源码编译安装,则需要手动配置。

2.6.1 配置服务脚本

在源码包的contrib目录中有Linux、FreeBSD、OSX适用的服务脚本。将linux的脚本拷贝到/etc/init.d/目录中,将脚本重命名为postgresql,并授予可执行权限。

cd /usr/local/postgresql-15.3/contrib/start-scripts
cp linux /etc/init.d/postgresql
chmod +x /etc/init.d/postgresql
ll /etc/init.d/postgresql

image.png

2.6.2 修改/etc/init.d/postgresql的内容

将prefix设置为PostgreSQL的安装路径:/usr/local/postgresql
将PGDATA设置为PostgreSQL的数据目录路径:/data/pgdata/data

vi /etc/init.d/postgresql

2.6.3 设置开机启动

检查PostgreSQL是否开机启动

chkconfig --list
chkconfig --list|grep postgresql
chkconfig postgresql on

image.png

参考:

  1. https://blog.csdn.net/ziqibit/article/details/129392672
  2. https://www.modb.pro/db/636547

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)

漏洞版本 1.1.100 < H2 Console < 2.0.204 漏洞复现 此处复现版本1.4.197 启动项目如下 在Driver Class中输入javax.naming.InitialContext 在JDBCURL中输入jndi注入恶意链接 生成链接命令&#xff1a; java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C …

CCD与CMOS

#1, 相机内部结构 https://zhuanlan.zhihu.com/p/158502818 #2&#xff0c;

大数据从0到1的完美落地之Hive分区

分区简介 为什么分区 Hive的Select查询时&#xff0c;一般会扫描整个表内容。随着系统运行的时间越来越长&#xff0c;表的数据量越来越大&#xff0c;而hive查询做全表扫描&#xff0c;会消耗很多时间&#xff0c;降低效率。而有时候&#xff0c;我们需求的数据只需要扫描表…

java面试高频面试题

文章目录 面向对象 什么是面向对象&#xff1f;封装继承多态 和equals比较hashCode与equals重载和重写的区别Final类加载器spring是什么AOP的理解谈谈你对IOC的理解零拷贝RocketMQ 架构设计RocketMq 事务消息原理RockeMq顺序消息消费原理简述RockerMQ持久化机制RocketMQ如何保…

redis学习整理

目录 一、简述 二、作用 三、五大基本数据类型 Key命令 1.String字符串 2.List列表 3.Set(集合&#xff09; 4.Hash&#xff08;哈希&#xff09; 5.zSet&#xff08;有序集合&#xff09; 四、主从复制 与 哨兵模式 1. 主从复制&#xff1a; 2. 哨兵模式&#xff…

【正点原子STM32连载】 第四十一章 游戏手柄实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html# 第四…

【从零开始学习C++ | 第二十一篇】C++新增特性 (上)

目录 前言&#xff1a; 委托构造函数&#xff1a; 类内初始化&#xff1a; 空指针&#xff1a; 枚举类&#xff1a; 总结&#xff1a; 前言&#xff1a; C的学习难度大&#xff0c;内容繁多。因此我们要及时掌握C的各种特性&#xff0c;因此我们更新本篇文章&#xff0c;向…

部署vue element-ui admin报错(vue2)

部署vue element-ui admin报错(vue2) 目录 部署vue element-ui admin报错(vue2) 一、官方安装说明 二、部署报错的关键影响因素 2.1、“开发模板”版本 2.2、完整版 2.2.1、基础知识和基础依赖 2.2.2、原理-安装过程 三、完整版 3.3、win10环境 四、效果 4.1、win7…

云安全技术——kvm虚拟化技术

目录 10-1 kvm简介 10-2 在CentOS 7 图形化界面下安装KVM 使用IDEA开发读写MySQL数据库程序 实验目的 了解 CentOS7图形化界面的部署方法 了解 KVM的组成和作用 了解 KVM的技术架构 了解KVM的安装方法 了解 KVM创建虚拟机的方法 了解KVM的常用管理命令 实验要求 能部署图形化…

为什么建议孩子学Python?理由都在这!

近几年&#xff0c;越来越多的家长选择让孩子学习编程&#xff0c;以此提高孩子的逻辑思维、信息素养等综合能力。 Python作为一种计算机程序设计语言&#xff0c;在科技行业中有广泛的应用&#xff0c;逐渐成为少儿编程教育中必学课程之一。今天&#xff0c;编编就为大家详细…

【开发者指南】如何在MyEclipse中编辑HTML或JSP文件?(二)

在上文中&#xff08;点击这里回顾>>&#xff09;&#xff0c;我们为大家介绍了HTML / JSP编辑器、智能代码完成和内容辅助等功能&#xff0c;本文将继续介绍Emmet支持、Outline 视图功能等。 MyEclipse v2023.1正式版下载 如果您有HTML或JSP文件要编辑&#xff0c;这里…

chatgpt赋能python:Python聊天程序:现代化交流的必备工具

Python聊天程序&#xff1a;现代化交流的必备工具 在信息技术快速发展的现代社会&#xff0c;聊天作为一种流行的交流方式已经取代了传统的语音电话和短信。由于智能手机和电脑的广泛普及&#xff0c;越来越多的人习惯于使用聊天软件来与朋友、家人和同事保持联系。因此&#…

GBASE南大通用携手麒麟软件、索信达 共推金融信创联合解决方案

在国家信创战略推动下&#xff0c;我国正逐步实现基础硬件-基础软件-行业应用软件的国产化替代。信创浪潮中&#xff0c;各产业链以及不同垂直细分领域的创新主体&#xff0c;正以开放、创新、团结的姿态&#xff0c;形成高凝聚力的生态合作&#xff0c;共推信创产业发展&#…

【Java】JVM学习(三)

JVM的整体内存结构 本地方法栈 本地方法栈跟 Java 虚拟机栈的功能类似&#xff0c;Java 虚拟机栈用于管理 Java 函数的调用&#xff0c;而本地方法栈则用于管理本地方法的调用。但本地方法并不是用 Java 实现的&#xff0c;而是由 C 语言实现的(比如Object.hashcode方法)。 …

PCA(主成分分析)

PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示&#xff0c;可用于提取数据的主要特征分量&#xff0c;常用于高维数据的降维。数据降维是无监督学习的另外一个常见问题。 数据的向量表示及降维问题 …

PostgreSQL 如何对索引进行分析和处理

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

智慧煤矿4G物联网方案,矿山矿井远程监控管理4G网关应用

随着经济发展煤矿需求不断激增&#xff0c;矿山矿井普遍处于偏远山区&#xff0c;生产管理、人员安全、生产效率是每个矿山矿井都需要考虑的问题&#xff0c;利用网关对现场终端设备连接组网&#xff0c;实现智慧煤矿远程管理。 各矿山矿井分布范围比较广泛&#xff0c;户外环境…

《Opencv3编程入门》学习笔记—第八章

《Opencv3编程入门》学习笔记 记录一下在学习《Opencv3编程入门》这本书时遇到的问题或重要的知识点。 第八章 图像轮廓与图像分割修复 一、查找并绘制轮廓 一个轮廓一般对应一系列的点&#xff0c;也就是图像中的一条曲线&#xff0c;其表示方法可能根据不同的情况而有所不…

FFmpeg 播放器实现音视频同步的几种方式

我们基于 FFmpeg 利用 OpenGL ES 和 OpenSL ES 分别实现了对解码后视频和音频的渲染&#xff0c;本文将实现播放器的最后一个重要功能&#xff1a;音视频同步。 老人们经常说&#xff0c;播放器对音频和视频的播放没有绝对的静态的同步&#xff0c;只有相对的动态的同步&#…

深度学习管理工具

1. mlflow https://zhuanlan.zhihu.com/p/363673389 官方文档&#xff1a; https://www.mlflow.org/docs/latest/index.html https://zhuanlan.zhihu.com/p/67173051 在跟踪实验时&#xff0c;通过运行 mlflow ui 后在 http&#xff1a;// localhost&#xff1a;5000 中进行…