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

在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.lryc.cn/news/602683.html

相关文章:

  • <七> CentOS 8 安装最新版本Docker
  • 很妙的一道题 Leetcode234. 回文链表
  • 力扣 之 最小覆盖子串(变长滑动窗口,越短越好)
  • 电磁兼容五:仿真技术
  • Mac安装navicat17版本教程mac下载Navicat Premium for Mac v17.1.9【好用】
  • 微算法科技(NASDAQ:MLGO)利用基于区块链的机器学习模型进行交易分类,实现交易数据的匿名化
  • redis数据库的四种取得 shell方法
  • 安宝特案例丨户外通信机房施工革新:AR+作业流技术破解行业难题
  • 免费版酒店收银系统弹窗在押金原路退回流程中的应用价值探究 ——仙盟创梦IDE
  • 设计模式(二十一)行为型:状态模式详解
  • python生成 requirement.txt 文件
  • fchown/fchownat系统调用及示例
  • 技术总结|如何使用提升 strlen 的性能?
  • lesson26-2:使用Tkinter打造简易画图软件优化版
  • 数据链路层 和 ARP协议
  • MQTT的原理
  • 华为Huawei 6730交换机查看接口收发光命令 transceiver
  • 9.c语言常用算法
  • Anaconda创建环境报错:CondaHTTPEFTOT: HTTP 403 FORBIDDEN for url
  • Linux中配置haproxy
  • gitlab 在线合并分支a-分支b,解决冲突后,反向合并分支b-分支a
  • 数据结构——图(二、图的存储和基本操作)
  • 人机交互打字游戏
  • Leetcode——11. 盛最多水的容器
  • 力扣-39.组合总和
  • PhpStorm + PHP8.1 + XDebug3 实现断点调试(亲测可用)
  • 面试问题收集——卷积神经网络
  • 从 “看天吃饭” 到 “精准可控”:边缘计算网关如何引爆智慧农业种植变革?
  • 计算机毕设分享-基于SpringBoot的健身房管理系统(开题报告+前后端源码+Lun文+开发文档+数据库设计文档)
  • 服务器多线主要是指什么?