在CentOS上以源码编译的方式安装PostgreSQL

下载目录:PostgreSQL: File Browser,我使用的PostgreSQLv17.5。Linux系统:CentOS Linux release 7.9.2009 (Core)

  1. 安装依赖包和工具链(必须且重要!

    yum groupinstall "Development Tools" -y
    yum install -y readline-devel zlib-devel libicu-devel openssl-devel pam-devel libxml2-devel libxslt-devel systemd-devel
    
  2. 上传安装包至服务器后解压此包

    # 先在Windows的CMD 或 macOS的terminal下执行scp命令
    scp postgresql-17.5.tar.gz root@192.168.31.199:/root
    # Linux执行以下命令
    tar -xvf postgresql-17.5.tar.gz # 解压
    
  3. 编译并安装

    cd postgresql-17.5
    ./configure \--prefix=/opt/pgsql \ # 申明安装在哪里--with-openssl \--with-libxml \--with-icu \--with-systemd
    make -j $(nproc) && sudo make install # $(nproc)使用CPU多核编译
    
  4. 增加postgres组和postgres用户

    groupadd postgres && useradd -g postgres postgres
    passwd postgres # 定义postgres用户密码
    
  5. 创建目录并授权:创建存储数据的文件夹(我创建在**/opt/pgsql/data**)

    mkdir -p /opt/pgsql/data && chown -R postgres:postgres /opt/pgsql
    
  6. 初始化数据库

    # 切换至postgres用户
    su – postgres
    # 进入pgsql的bin目录
    cd /opt/pgsql/bin
    # 初始化数据库
    ./initdb -D /opt/pgsql/data --locale=en_US.UTF-8 --encoding=UTF8
    
  7. 修改配置文件

    • /opt/pgsql/data/postgresql.conf 新增内容如下

      listen_addresses = '*' # 允许所有IP连接,默认是仅允许本地连接,此项必须改
      port = 5432       # 默认端口,此项可忽略不增
      
    • /opt/pgsql/data/ pg_hba.conf 修改内容如下

      # IPv4 local connections:
      # host    all             all             127.0.0.1/32            trust # 注释掉原来的
      host    all             all             0.0.0.0/0            scram-sha-256 # 新增此行,允许所有IP通过密码连接
      # IPv6 local connections:
      # host    all             all             ::1/128                 trust # 注释掉原来的
      host    all             all             ::1/128                 scram-sha-256 # 新增此行,允许所有IP通过密码连接
      
  8. 新建/etc/systemd/system/postgresql.service服务文件,需用到root用户,请切换到root用户

    su - root
    touch /etc/systemd/system/postgresql.service
    

    文件内容如下

    [Unit]
    Description=PostgreSQL database server
    After=network.target[Service]
    User=postgres
    Group=postgres
    Type=notify
    User=postgres
    ExecStart=/opt/pgsql/bin/postgres -D /opt/pgsql/data
    ExecReload=/bin/kill -HUP $MAINPID[Install]
    WantedBy=multi-user.target
    

    修改完成后执行

    chown postgres:postgres /etc/systemd/system/postgresql.service
    systemctl daemon-reload
    systemctl start postgresql
    systemctl enable postgresql # 不希望pgsql每次开机自启,请勿执行此行命令
    
  9. 修改postgresql数据超级用户——postgres的密码,并将postgres用户添加到路径,请先将Linux切换到postgres用户

    su - postgres
    . /opt/pgsql/bin/psql -c "alter user postgres with password '自定义密码';"
    # 添加路径
    echo 'export PATH=$PATH:/opt/pgsql/bin' >> ~/.bash_profile
    echo 'export PGDATA=/opt/pgsql/data' >> ~/.bash_profile
    source ~/.bash_profile
    
  10. 开启防火墙端口(请先将Linux切换到root用户)

    su - root
    firewall-cmd --add-port=5432/tcp --permanent # 开放端口且永久生效
    firewall-cmd --reload # 重载配置
    

若远程连接不上,则重启服务,用postgres用户或root都行systemctl restart postgresql

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

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

相关文章

Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现沙滩小人检测识别(C#代码UI界面版)

Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现沙滩小人检测识别(C#代码UI界面版)工业相机使用YoloV8模型实现沙滩小人检测识别工业相机通过YoloV8模型实现沙滩小人检测识别的技术背景在相机SDK中获取图像转换图像的代码分析工业相机图像转换…

Ubuntu服务器安装与运维手册——操作纯享版

本手册汇总了从硬件预配置、Ubuntu 安装、网络与服务配置,到 Windows/macOS 访问共享、MySQL 初始化的完整流程,便于今后运维参考。 目录 环境与硬件概览BIOS/UEFI 设置制作与启动安装介质Ubuntu 24.04 LTS 安装流程静态 IP 配置(netplan&am…

【Nginx】Nginx进阶指南:解锁代理与负载均衡的多样玩法

在Web服务的世界里,Nginx就像是一位多面手,它不仅能作为高性能的Web服务器,还能轻松胜任代理服务器、负载均衡器等多种角色。今天,我们就来深入探索Nginx的几个常见应用场景,通过实际案例和关键配置解析,带…

原创-锐能微82xx系列电能计量芯片软件驱动开发与精度校准流程完全指南

引言 电能计量芯片的软件驱动开发是整个计量系统的核心,它直接决定了计量精度、系统稳定性和功能完整性。锐能微82xx系列电能计量芯片凭借其强大的数字信号处理能力和丰富的功能特性,为开发者提供了灵活的软件开发平台。本文将详细介绍82xx系列芯片的软…

如何使用 Apache Ignite 作为 Spring 框架的缓存(Spring Cache)后端

这份文档是关于 如何使用 Apache Ignite 作为 Spring 框架的缓存(Spring Cache)后端,实现方法级别的缓存功能。 这和前面我们讲的 Spring Data Ignite 是两个不同的概念。我们先明确区别,再深入理解。🔁 一、核心区别…

Android 超大图片、长图分割加载

在Android开发中,处理大图片的加载是一个常见且重要的问题,尤其是在需要显示高分辨率图片时。大图片如果不正确处理,可能会导致内存溢出或应用性能下降。下面是一些常用的策略和技术来优化大图片的加载:1. 使用图片压缩库a. Glide…

Linux:理解操作系统

文章目录数据流动操作系统数据流动 软件运行,必须先加载到内存,本质要把磁盘上的文件 加载到内存。 我们写的算法是处理存储器里面的数据,数据就是文件,我们自己写的可执行文件。 图中QQ就是软件,加载内存后进行下一步…

【每日一错】PostgreSQL的WAL默认段大小

文章目录题目扩展学习WAL工作原理流程图题目 扩展学习 WAL(Write Ahead Log)预写日志: WAL是PostgreSQL先写日志、后写数据的机制,用来防止数据丢失、提升数据恢复能力。 流程: 事务先写日志文件(WAL&…

Visual Studio Code 使用指南 (2025年版)

Visual Studio Code (VS Code) 是一款由微软开发的免费、开源、跨平台的现代化轻量级代码编辑器,凭借其强大的核心功能、丰富的扩展生态系统以及高度可定制性,已成为全球数百万开发者的首选工具。本指南旨在帮助您快速上手 VS Code,掌握其核心…

【Java】JVM虚拟机(java内存模型、GC垃圾回收)

一、Java内存模型(JMM)JMM(Java Memory Model,Java 内存模型)是 Java 虚拟机规范中定义的一种抽象概念,用于规范 Java 程序中多线程对共享内存的访问规则,解决可见性、原子性和有序性问题&#…

二叉树算法之【二叉树的层序遍历】

目录 LeetCode-102题 LeetCode-102题 给定二叉树的根节点root&#xff0c;返回其节点值的层序遍历&#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 class Solution {public List<List<Integer>> levelOrder(TreeNode root) {// checkif (r…

uniapp+vue3——通知栏标题纵向滚动切换

介绍 取巧&#xff0c;使用纵向轮播实现 <!-- 通知栏 --> <view class"noticeBox" v-if"notice.length>0"><image src"/static/images/index/noticeIcon.png" mode"aspectFill"></image><swiper class&…

BilldDesk 开源、免费、吊打收费软件!白嫖党最爱!远程控制神器,没有任何连接次数和画质限制,同时显示多屏、屏幕墙等高级功能

远程控制软件哪个好用&#xff1f;TeamViewer收费太贵&#xff0c;向日葵限制太多&#xff0c;QQ远程又不稳定……别担心&#xff01;今天给大家推荐一款完全免费、开源的远程控制神器——BilldDesk&#xff01;它不仅功能强大&#xff0c;而且支持Windows、macOS、Linux、Andr…

ios UIAppearance 协议

一、前言 iOS 上提供了一个比较强大的工具UIAppearance&#xff0c;我们通过UIAppearance设置一些UI的全局效果&#xff0c;这样就可以很方便的实现UI的自定义效果又能最简单的实现统一界面风格。 (id)appearance ; 这个是这个协议里最重要的方法了 . 这个方法是统一全部改&am…

进阶数据结构:用红黑树实现封装map和set

​ 嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的 passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let’s go! 我的博客:yuanManGa…

【数据结构初阶】--二叉树(五)

&#x1f525;个人主页&#xff1a;草莓熊Lotso &#x1f3ac;作者简介&#xff1a;C研发方向学习者 &#x1f4d6;个人专栏&#xff1a; 《C语言》 《数据结构与算法》《C语言刷题集》《Leetcode刷题指南》 ⭐️人生格言&#xff1a;生活是默默的坚持&#xff0c;毅力是永久的…

redis布隆过滤器解决缓存击穿问题

在电商系统中&#xff0c;商品详情页是一个典型的高频访问场景。当用户请求某个商品的详情时&#xff0c;系统会优先从缓存中获取数据。如果缓存中没有该商品的详情&#xff0c;系统会去数据库查询并更新缓存。然而&#xff0c;如果某个热门商品的缓存失效&#xff0c;大量请求…

1+1>2!特征融合如何让目标检测更懂 “场景”?

来gongzhonghao【图灵学术计算机论文辅导】&#xff0c;快速拿捏更多计算机SCI/CCF发文资讯&#xff5e;在多模态大模型&#xff08;MLLM&#xff09;时代&#xff0c;特征融合与目标检测的研究方向正变得愈发关键。从红外与可见光图像的融合&#xff0c;到语音活动检测中的特征…

详解赛灵思SRIO IP并提供一种FIFO封装SRIO的收发控制器仿真验证

概述RapidIO标准定义为三层&#xff1a;逻辑层、传输层、物理层。逻辑层&#xff1a;定义总体协议和包格式&#xff0c;包含设备发起/完成事务的必要信息。传输层&#xff1a;提供包传输的路由信息&#xff08;对顶层不可见&#xff09;。物理层&#xff1a;描述设备级接口细节…

深度学习:简介与任务分类总览

一、什么是深度学习&#xff1f;1.1 深度学习的定义深度学习&#xff08;Deep Learning&#xff09;是机器学习的一种特殊形式&#xff0c;它依赖于具有多层结构的神经网络自动从数据中学习特征并完成任务&#xff0c;如图像识别&#xff0c;语音识别&#xff0c;自然语言处理等…