在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
英文地址,請注明出處:http://en.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;自然語言處理等…