当前位置: 首页 > news >正文

Linux安装单机PostgreSQL15.4

1. 联网rpm安装

1.1.关闭服务

## 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
## 关闭 selinux
cat /etc/selinux/config
SELINUX=disabled

1.2.安装yum源

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

1.3.安装PostgreSQL

yum install -y postgresql15-server

1.4.初始化数据库

/usr/pgsql-15/bin/postgresql-15-setup initdb

1.5.启动数据库

systemctl enable postgresql-15
systemctl start postgresql-15

1.6.查看PostgreSQL是否安装

## 检查 PostgreSQL 是否已安装
rpm -qa | grep postgres## 查看 PostgreSQL 安装位置
rpm -qal | grep postgres

2. 离线rpm安装

2.1.下载rpm安装包

## 下载地址
https://yum.postgresql.org/15/redhat/rhel-7-x86_64/repoview/## 例如下载postgreSQL 15.4
libzstd-1.5.5-1.el7.x86_64.rpm
postgresql15-libs-15.4-1PGDG.rhel7.x86_64.rpm
postgresql15-15.4-1PGDG.rhel7.x86_64.rpm
postgresql15-server-15.4-1PGDG.rhel7.x86_64.rpm

2.2.初始化数据库

/usr/pgsql-15/bin/postgresql-15-setup initdb

2.3.启动数据库

systemctl enable postgresql-15.service
systemctl start postgresql-15.service
systemctl status postgresql-15.service

2.4.rpm安装注意事项

## 默认情况下,数据目录位置:/var/lib/pgsql/<version>/data## 默认创建 postgres 的 Linux 登录用户,用于连接数据库
[root@pg01 ~]# su - postgres
-bash-4.2$ psql
psql (15.4)
Type "help" for help.postgres=# \q  --退出

3. 源码编译安装

源码编译总体分为三个过程:配置(configure)、编译(make)、安装(make install)。

3.1.下载源码包

## 下载地址
https://www.postgresql.org/ftp/source/v15.4/## 例如下载PostgreSQL 15.4
postgresql-15.4.tar.gz## 解压源码包
tar -zxvf postgresql-15.4.tar.gz

3.2.配置(configure)

## 先安装依赖包,在进行配置操作,不然后面检查会报错
yum install readline-devel zlib-devel -y## 开始配置
cd /tmp/pg_soft/postgresql-15.4
./configure --prefix=/pgsql15.4## 解释
--prefix:指定安装路径,将所有文件放置到该路径下

3.3.编译(make)

## make命令版本需要在gmake v3.8以上
make --version## 开始编译
cd /tmp/pg_soft/postgresql-15.4
make

3.4.安装(make install)

cd /tmp/pg_soft/postgresql-15.4
make install

3.5.创建数据目录和用户

## 用户
groupadd -g 1500 postgres
useradd -g 1500 -u 1501 postgres## 数据目录
mkdir -p /pgsql15.4/data
chown postgres:postgres -R /pgsql15.4

3.6.配置环境变量

vi /etc/profile
## 可执行文件位置
export PATH=/pgsql15.4/bin:$PATH
## 共享库位置
export LD_LIBRARY_PATH=/pgsql15.4/lib
## 数据目录
export PGDATA=/pgsql15.4/data

3.7.初始化数据库

注:必须使用非特权用户进行初始化。

su - postgres
cd /pgsql15.4/bin
initdb

3.8.启动/停止数据库

## 启动
pg_ctl -D /pgsql15.4/data start## 关闭
pg_ctl -D /pgsql15.4/data stop -m fast## 三种关闭模式
smart:等所有连接中止后,关闭数据库。如果客户端连接不终止,则无法关闭数据库。
fast:快速关闭数据库,断开客户端的连接,让已有的事务回滚,然后正常关闭数据库。相当于Oracle的imediate。
mmediate:立即关闭数据库,相当于数据库进程立即停止,直接退出,下次启动数据库需要进行恢复。相当于Oracle的abort。

3.9.安装contrib目录下的工具

## 以 basic_archive 归档模块为例
[root@postgresql postgresql-15.4]# ./configure
[root@postgresql postgresql-15.4]# cd contrib/basic_archive/
[root@postgresql basic_archive]# make
[root@postgresql basic_archive]# make install## 或手动将生成的.so文件复制到lib目录下
[root@postgresql basic_archive]# ll
total 48
-rw-r--r-- 1 1107 1107 10145 Aug  8 04:08 basic_archive.c
-rw-r--r-- 1 1107 1107   110 Aug  8 04:08 basic_archive.conf
-rw-r--r-- 1 root root 10528 Sep 26 13:32 basic_archive.o
-rwxr-xr-x 1 root root 14328 Sep 26 13:32 basic_archive.so
drwxrwxrwx 2 1107 1107    31 Aug  8 04:23 expected
-rw-r--r-- 1 1107 1107   639 Aug  8 04:08 Makefile
drwxrwxrwx 2 1107 1107    31 Aug  8 04:23 sql
[root@postgresql basic_archive]# cp basic_archive.so /pgsql15.4/lib/
[root@postgresql lib]# chown postgres:postgres basic_archive.so

4.安装后的配置

4.1.pg_hba.conf的配置

默认创建的数据库无法接受远程连接,因为默认情况下,pg_hba.conf中没有相应的配置项。

cd /pgsql15.4/data
vi pg_hba.conf
# IPv4 local connections:
host    all             all             0/0                     md5pg_hba.conf文件是一个黑白名单的访问控制文件,可以控制允许哪些IP地址的机器访问数据库。

4.2.修改监听的IP和端口

cd /pgsql15.4/data
vi postgresql.conf
#listen_addresses = 'localhost'
listen_addresses = '*'
#port = 5432## 解释
listen_addresses = 'localhost' 为本地监听,也就是127.0.0.1,会造成远程主机无法登录数据库。
port = 5432 默认的数据库端口,如果一台机器安装了多个实例,就可以设置不同的端口。以上两个参数,需要重启数据库才能生效

4.3.数据库日志相关参数

## 打开日志收集(默认off)
logging_collector = on
## 日志目录
log_directory = 'log'
## 参数修改方式(alter system set或postgresql.conf)
alter system set logging_collector = on;
alter system set log_truncate_on_rotation = on;vi postgresql.conf
logging_collector = on
log_directory = 'log'## 日志切换和是否覆盖的三种方案
(1)每天生成一个新的日志文件
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_truncate_on_rotation = off
log_rotation_age = 1d
log_rotation_size = 0(2)每当日志写满一定的大小(如10M),则切换一个日志
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_truncate_on_rotation = off
log_rotation_age = 0
log_rotation_size = 10M(3)只保留最近7天的日志,进行循环覆盖
log_filename = 'postgresql-%a.log'
log_truncate_on_rotation = on
log_rotation_age = 1d
log_rotation_size = 0

4.4. 内存参数

PostgreSQL安装完成后,可以修改以下主要的内存参数:

shared_buffer:共享内存的大小,主要用于共享数据块。默认值为32M。如果有足够的内存,可以设置为物理内存大小的四分之一。

work_mem:单个SQL执行时,以及排序、Hash Join时使用的内存,SQL运行完后,该内存就会被释放,默认为4M,work_mem设置大一些,会使排序操作效率更高。

对于一个复杂查询,可能会并行运行好几个排序或哈希操作,每个操作都会被允许使用这个参数指定的内存量,然后才会开始写数据到临时文件。

4.5.数据库状态查询

## 服务的运行状态和启动路径
pg_ctl status## 数据库运行状态
select state from pg_stat_activity where datname='postgres';

5.其他功能配置

5.1.如何使用较大的数据块(可选,一般默认即可)

如果要使用较大的数据块来提高I/O性能,只能在源码编译安装时,执行./configure脚本指定数据块的大小。

## 如指定32KB的数据块、WAL日志、64MB WAL日志文件大小
./configure --with-blocksize=32 --with-wal-blocksize=32 --with-wal-segsize=64

注:对于此时编译出来的PostgreSQL程序创建的PostgreSQL数据库,不能使用其他块大小的PostgreSQL程序启动。

5.2.Checksum功能(可选)

对于一些数据可靠性要求较高的场景,建议打开数据块的checksum校验功能。

通常用于校验数据在传输或存取过程中是否发生错误,以发现数据因磁盘、I/O损坏等原因造成的数据库异常。

开启checksum可能会对系统性能造成一定的影响。将为数据库中的所有对象计算校验和。

所有校验和失败都将在pg_stat_database视图中报告。

如果数据库较大,转换成checksum功能的数据库就需要比较长的一段时间,需要安排合理的停机时间。

## 检查是否打开checksum功能
此命令需要数据库处于关闭状态:
pg_checksums -c此命令在数据库开启状态可执行,0关闭,1打开:
pg_controldata -D /pgsql15.4/data |grep checksum## 打开checksum功能
初始化时:
initdb -k创建数据库后,先关闭数据库,然后打开该功能:
pg_checksums -e -P## 禁用checksum功能
pg_checksums -d

相关文章:

Linux安装单机PostgreSQL15.4

1. 联网rpm安装 1.1.关闭服务 ## 关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.service ## 关闭 selinux cat /etc/selinux/config SELINUXdisabled1.2.安装yum源 yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-…...

最新 SpringCloud微服务技术栈实战教程 微服务保护 分布式事务 课后练习等

SpringCloud微服务技术栈实战教程&#xff0c;涵盖springcloud微服务架构Nacos配置中心分布式服务等 SpringCloud及SpringCloudAlibaba是目前最流行的微服务技术栈。但大家学习起来的感受就是组件很多&#xff0c;不知道该如何应用。这套《微服务实战课》从一个单体项目入手&am…...

Docker搭建MySQL8.0主从复制(一主一从)

0. 配置说明 宿主机使用的版本为19045的win10专业版&#xff0c;MySQL使用的是8.0&#xff0c;Docker容器使用Linux。 1. 安装Docker Desktop 略 修改Docker默认安装路径 安装包自己就提供了修改安装路径的功能&#xff0c;CMD中运行&#xff1a; “Docker Desktop Installe…...

40V汽车级P沟道MOSFET SQ4401EY-T1_GE3 工作原理、特性参数、封装形式—节省PCB空间,更可靠

AEC-Q101车规认证是一种基于失效机制的分立半导体应用测试认证规范。它是为了确保在汽车领域使用的分立半导体器件能够在严苛的环境条件下正常运行和长期可靠性而制定的。AEC-Q101认证包括一系列的失效机制和应力测试&#xff0c;以验证器件在高温、湿度、振动等恶劣条件下的可…...

记录在搭建Jenkins时,所遇到的坑,以及解决方案

项目场景&#xff1a; 记录在搭建Jenkins时,所遇到的坑,以及解决方案.问题描述1 在使用Jenkins构建时,报错如下&#xff1a; cp: cannot stat /project/xx/xxxx/dist/: No such file or directory Build step Execute shell marked build as failure Finished: FAILURE解决方…...

二极管“天马行空”的作用,你知道吗?

网友&#xff1a;二极管怎么有这么多种类呀&#xff1f; 工程师&#xff1a;二极管可以说除了电阻电容外用的比较多的一种元器件&#xff0c;起到的作用多着呢 那么二极管都可以起到哪些作用呢&#xff1a; 一、防反作用&#xff0c;主回路中串联一个二极管&#xff0c;是利用…...

鼎盛合:adc芯片的五种结构

随着国内消费电子产品、通信、工业自动化、汽车电子等行业的快速发展&#xff0c;对ADC芯片的需求不断增加&#xff0c;国内ADC芯片近年也在持续稳定地发展着。ADC种类多样&#xff0c;可分为单通道ADC、多通道ADC、高速ADC、精密ADC和集成ADC等&#xff0c;主要应用于医疗仪器…...

CTF 全讲解:[SWPUCTF 2021 新生赛]Do_you_know_http

文章目录 参考环境题目hello.php雾现User-Agent伪造 User-AgentHackBarHackBar 插件的获取修改请求头信息 雾散 a.php雾现本地回环地址与客户端 IP 相关的 HTTP 请求头X-Forwarded-For 雾散 参考 项目描述搜索引擎Bing、GoogleAI 大模型文心一言、通义千问、讯飞星火认知大模型…...

物联网AI MicroPython传感器学习 之 4路电容式触摸开关

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; 一、产品简介 板载TTP224电容式4键触摸感应IC&#xff0c;开发者通过触摸该电容模块获取对应的高低电平状态&#xff0c;可以广泛应用于灯光控制、玩具、家用电器等产品中。 引脚定义&#xff1a; VCC&…...

头戴式耳机什么牌子最好?头戴式耳机推荐性价比高

脖子上挎个头戴式作为随身装备&#xff0c;不仅给服装配饰添加了潮流感&#xff0c;还可以可以随时聆听音乐&#xff0c;随着广大消费者的生活水平不断提高&#xff0c;市面上的头戴式耳机越来越多。 选择头戴式耳机时无非就是听音质、看外观、舒适度等等&#xff0c;那么头戴…...

第 366 场周赛 LeetCode 周赛题解

A 分类求和并作差 模拟 class Solution { public:int differenceOfSums(int n, int m) {int res 0;for (int i 1; i < n; i)res i % m ! 0 ? i : -i;return res;} };B 最小处理时间 排序&#xff1a;设四个 p r o c e s s o r T i m e processorTime processorTime 的元…...

Linux: tcpdump抓包示例

文章目录 1. 前言2. TCP 状态机3. tcpdump 抓包示例3.1 抓连接握手包&#xff1a;三次握手3.2 抓数据包示例3.3 抓终结连接&#xff1a;四次挥手 4. 参考资料 1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任…...

seafile server10.0.1 onlyoffice

目标&#xff1a;解决seafile server无法查看office相关文档问题 seafile server 已安装完成 安装onlyoffice 一、Install Docker Engine on Ubuntu 20.04 验证是否安装成功 sudo docker run hello-world 二、拉取onlyoffice/documentserver 镜像及安装 docker network cre…...

商城系统选型:Java商城系统还是PHP商城系统好?

电子商务的不断发展&#xff0c;商城系统成为了企业建设在线销售平台的重要组成部分。 可是在选择合适的商城系统时&#xff0c;许多企业面临着一个重要的决策&#xff1a;是选择Java商城系统还是PHP商城系统呢&#xff1f;下面就对这两种常见的商城系统进行比较&#xff0c;并…...

【多线程进阶】线程安全的集合类

文章目录 前言1. 多线程环境使用 ArrayList2. 多线程环境使用队列3. 多线程环境使用哈希表3.1 HashTable3.2 ConcurrentHashMap 总结 前言 本文主要讲解 Java 线程安全的集合类, 在之前学习过的集合类中, 只有 Vector, Stack, HashTable, 是线程安全的, 因为在他们的关键方法中…...

016 Spring Boot + Vue 图书管理系统

Spring Boot Vue 图书馆管理系统&#xff08;library-system&#xff09; 本地快捷预览项目 第一步&#xff1a;运行 db 文件夹下的springboot-vue.sql(询问作者获取)&#xff0c;创建springboot-vue数据库 第二步&#xff1a;修改后端数据库配置文件&#xff0c;启动后端 …...

C语言中volatile/register/const/static/extern/auto关键字的作用

目录 一、volatile 二、register详解 三、const详解 四、static详解 五、extern详解 语法 作用 六、auto详解 突然想总结一下这些关键字的作用&#xff0c;灵活使用这些对程序的可靠性和速率都有提高 一、volatile volatile是防止编译器优化&#xff0c;如果是高频繁…...

docker compose的安装和使用

docker-copose 介绍 docker-compose 是一个容器编排工具&#xff08;自动化部署、管理&#xff09;; 它用来在单台 Linux 服务器上运行多个 Docker 容器; docker-compose 使用YAML文件来配置所有需要运行的 Docker 容器&#xff0c;该 YAML 文件的默认名称为 docker-compose.…...

/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21‘ not found (required by

在某项目中遇到下面的错误&#xff0c; ./model2trt_v2: /lib64/libstdc.so.6: version GLIBCXX_3.4.21 not found (required by ./model2trt_v2) ./model2trt_v2: /lib64/libstdc.so.6: version GLIBCXX_3.4.21 not found (required by ../../../lib/linux_lib/libcuda_utils…...

数字化转型的必备工具:智能呼叫中心系统的应用

数字化转型已经成为企业发展的必然趋势&#xff0c;在这个过程中&#xff0c;智能呼叫中心系统成为了一个不可或缺的工具。智能呼叫中心系统通过整合各种通信渠道和自动化技术&#xff0c;为企业提供了高效、智能的客户服务解决方案。 首先&#xff0c;系统能够集成多种通信渠…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...

Spring Boot + MyBatis 集成支付宝支付流程

Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例&#xff08;电脑网站支付&#xff09; 1. 添加依赖 <!…...

JDK 17 序列化是怎么回事

如何序列化&#xff1f;其实很简单&#xff0c;就是根据每个类型&#xff0c;用工厂类调用。逐个完成。 没什么漂亮的代码&#xff0c;只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...