centos7 aarch64上安装PostgreSQL14.3

目录

[1. 安装依赖包](#1. 安装依赖包)

[2. 下载 PostgreSQL 14.3 源码](#2. 下载 PostgreSQL 14.3 源码)

[3. 配置编译选项](#3. 配置编译选项)

[4. 编译并安装](#4. 编译并安装)

[5. 创建 PostgreSQL 用户和组](#5. 创建 PostgreSQL 用户和组)

[6. 创建数据目录并设置权限](#6. 创建数据目录并设置权限)

[7. 初始化数据库](#7. 初始化数据库)

[8. 配置环境变量](#8. 配置环境变量)

[9. 创建 systemd 服务文件](#9. 创建 systemd 服务文件)

[10. 启动服务并设置开机自启](#10. 启动服务并设置开机自启)

[11. 验证安装](#11. 验证安装)

[12. 基本配置(可选)](#12. 基本配置(可选))

[修改 postgres 用户密码:](#修改 postgres 用户密码:)

允许远程访问:

防火墙设置:

安装后注意事项:

[验证 ARM 架构兼容性](#验证 ARM 架构兼容性)

问题项

1.yum中清除报错的repo


在 CentOS 7 aarch64 架构上安装 PostgreSQL 14.3,由于官方 RPM 仓库可能不直接提供 ARM 版本的特定版本,我们将采用源码编译安装的方式。以下是详细步骤:

1. 安装依赖包

复制代码
sudo yum groupinstall -y "Development Tools"
sudo yum install -y readline-devel zlib-devel openssl-devel wget

2. 下载 PostgreSQL 14.3 源码

复制代码
wget https://ftp.postgresql.org/pub/source/v14.3/postgresql-14.3.tar.gz
tar -xvf postgresql-14.3.tar.gz
cd postgresql-14.3

3. 配置编译选项

复制代码
./configure \
    --prefix=/usr/local/pgsql \
    --with-openssl \
    --with-systemd \
    --with-libxml \
    --with-libxslt

说明:

  • --prefix:指定安装目录
  • --with-openssl:启用 SSL 支持
  • --with-systemd:支持 systemd 服务
  • ARM 架构下编译参数与 x86 基本相同,编译器会自动适配架构

执行记录:

./configure \
--prefix=/usr/local/pgsql

4. 编译并安装

复制代码
make -j$(nproc)     # -j 参数使用所有 CPU 核心加速编译
sudo make install

执行记录

make -j$(nproc)

sudo make install

5. 创建 PostgreSQL 用户和组

复制代码
sudo groupadd postgres
sudo useradd -g postgres postgres

6. 创建数据目录并设置权限

复制代码
sudo mkdir -p /usr/local/pgsql/data
sudo chown -R postgres:postgres /usr/local/pgsql/data

7. 初始化数据库

复制代码
sudo -u postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

8. 配置环境变量

复制代码
echo 'export PATH=/usr/local/pgsql/bin:$PATH' | sudo tee /etc/profile.d/pgsql.sh
echo 'export PGDATA=/usr/local/pgsql/data' | sudo tee -a /etc/profile.d/pgsql.sh
echo 'export MANPATH=/usr/local/pgsql/share/man:$MANPATH' | sudo tee -a /etc/profile.d/pgsql.sh
source /etc/profile.d/pgsql.sh

将 PostgreSQL 添加到系统 PATH

编辑 /etc/profile 文件:

复制代码
sudo vi /etc/profile

在文件末尾添加:

复制代码
export PATH=/usr/local/pgsql/bin:$PATH
export PGDATA=/usr/local/pgsql/data

保存后加载新配置:

复制代码
source /etc/profile

9. 创建 systemd 服务文件

复制代码
sudo vi /etc/systemd/system/postgresql.service

内容如下:

复制代码
[Unit]
Description=PostgreSQL database server
After=network.target

[Service]
Type=notify
User=postgres
ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=0

[Install]
WantedBy=multi-user.target

10. 启动服务并设置开机自启

复制代码
sudo systemctl daemon-reload
sudo systemctl enable postgresql
sudo systemctl start postgresql

11. 验证安装

复制代码
sudo systemctl status postgresql
sudo -u postgres /usr/local/pgsql/bin/psql -c "SELECT version();"

12. 基本配置(可选)

修改 postgres 用户密码:
复制代码
sudo -u postgres /usr/local/pgsql/bin/psql -c "ALTER USER postgres WITH PASSWORD 'Zx@2025.';"
允许远程访问:
  1. 修改 postgresql.conf

    sudo vi /usr/local/pgsql/data/postgresql.conf

修改:

复制代码
listen_addresses = '*'
  1. 修改 pg_hba.conf

    sudo vi /usr/local/pgsql/data/pg_hba.conf

添加:

复制代码
host    all             all             0.0.0.0/0               md5
  1. 重启服务:

    sudo systemctl restart postgresql

防火墙设置:
复制代码
sudo firewall-cmd --permanent --add-port=5432/tcp
sudo firewall-cmd --reload

安装后注意事项:

  1. 默认连接方式

    复制代码
    sudo -u postgres psql
  2. 重要目录

    • 安装目录:/usr/local/pgsql
    • 数据目录:/usr/local/pgsql/data
    • 配置文件:/usr/local/pgsql/data/postgresql.conf
  3. 性能优化

    根据服务器内存大小调整 shared_buffers 等参数(在 postgresql.conf 中)

  4. 版本升级

    后续升级新版本时,建议使用 pg_upgrade 工具进行数据迁移

验证 ARM 架构兼容性

复制代码
# 检查 PostgreSQL 是否识别 ARM 架构
sudo -u postgres psql -c "SHOW arch;"

# 查看服务器平台信息
sudo -u postgres psql -c "SELECT version();"

注意:源码编译安装方式在 ARM 架构上可能需要较长时间(约 20-30 分钟,取决于 CPU 性

能)。如果遇到内存不足的情况,可以尝试减少 make 的并行编译数(如 make -j2)。

问题项

1.yum中清除报错的repo

由于安装之前不清楚yum方式安装时链接Postgresq14.3版本有问题,所以安装失败,报错如下:

至此过后,安装其他任何东西都报错如下:

通过错误信息分析出问题源于 PostgreSQL RPM 仓库的 问题,**检查仓库配置,**验证仓库文件是否正常:

复制代码
sudo vi /etc/yum.repos.d/pgdg-redhat-all.repo

发现仓库配置正确,只是链接不上仓库地址,所以只能将仓库配置删掉

复制代码
rm -rf /etc/yum.repos.d/pgdg-redhat-all.repo

删除后再执行其他安装命令就正常了。

相关推荐
Madison-No77 小时前
【Linux】基础开发工具---yum / apt
linux·运维·服务器
dot to one7 小时前
应用层:Http、Https
linux·c++·网络协议
K_i1347 小时前
Linux的几种版本详细介绍
linux
YongCheng_Liang8 小时前
网络工程师笔记10-BGP协议
运维·网络·笔记
yzx9910138 小时前
Django 配置与安装完整指南
数据库·django·sqlite
東雪蓮☆8 小时前
LNMP 环境部署 WordPress
linux·运维·mysql·nginx·php
名誉寒冰8 小时前
# 深入理解Linux内核与用户态通信:Netlink机制实战
linux·服务器·windows
薰衣草23339 小时前
linux-1
linux·运维·服务器
egoist20239 小时前
[linux仓库]System V 进程通信详解:System V消息队列、信号量
linux·c语言·消息队列·pv·信号量
huangyuchi.9 小时前
【Linux实战 】Linux 线程池的设计、实现与单例模式应用
linux·c++·单例模式·线程池·懒汉模式·项目·linux系统