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

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

相关推荐
skywalk81633 小时前
unbound dns解析出现问题,寻求解决之道
运维·服务器·dns·unbound
海山数据库3 小时前
移动云大云海山数据库(He3DB)postgresql_anonymizer插件原理介绍与安装
数据库·he3db·大云海山数据库·移动云数据库
l1t3 小时前
DeepSeek总结的PostgreSQL的GPT推理SQL移植到DuckDB的性能优化方法
sql·gpt·postgresql
酉鬼女又兒4 小时前
零基础入门Linux指南:每天一个Linux命令_pwd
linux·运维·服务器
云飞云共享云桌面4 小时前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能
skywalk81634 小时前
走近科学:unbound dns域名服务器自己本地解析出现问题,寻求解决之道
运维·服务器·dns·unbound
zl_dfq4 小时前
Linux 之 【多线程】(pthread_xxx、轻量级进程、原生线程库、线程ID、__thread、线程栈、线程与信号、线程与程序替换)
linux
choke2334 小时前
Python 基础语法精讲:数据类型、运算符与输入输出
java·linux·服务器
袁煦丞 cpolar内网穿透实验室4 小时前
远程调试内网 Kafka 不再求运维!cpolar 内网穿透实验室第 791 个成功挑战
运维·分布式·kafka·远程工作·内网穿透·cpolar
2501_927993534 小时前
SQL Server 2022安装详细教程(图文详解,非常详细)
数据库·sqlserver