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

centos7 aarch64上安装PostgreSQL14.3

目录

1. 安装依赖包

2. 下载 PostgreSQL 14.3 源码

3. 配置编译选项

4. 编译并安装

5. 创建 PostgreSQL 用户和组

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

7. 初始化数据库

8. 配置环境变量

9. 创建 systemd 服务文件

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

11. 验证安装

12. 基本配置(可选)

修改 postgres 用户密码:

允许远程访问:

防火墙设置:

安装后注意事项:

验证 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

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

http://www.dtcms.com/a/306361.html

相关文章:

  • 如何在生成式引擎优化(GEO)中取得成功
  • Java:高频面试知识分享1
  • 比特币挖矿的能源消耗和环保问题
  • 【Linux】重生之从零开始学习运维之备份恢复
  • CONTRASTIVE-KAN:一种用于稀缺标记数据的网络安全半监督入侵检测框架
  • Apache Kafka核心组件详解
  • click和touch事件触发顺序 糊里糊涂解决的奇怪bug
  • 开源 Arkts 鸿蒙应用 开发(十二)传感器的使用
  • WiFi连接简单流程
  • Linux命令---服务管理类命令
  • EPOLL 的用法
  • 报考民航安检员证需要具备哪些条件?
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | VerifyAccountUi(验证码组件)
  • git本地仓库,工作区和暂存区的知识
  • SpringBoot之多环境配置全解析
  • 实现implements InitializingBean, DisposableBean 有什么用
  • AI 代码助手在大前端项目中的协作开发模式探索
  • 关于tresos Studio(EB)的MCAL配置之MCU
  • 商标注册后可以随意更改字体和颜色吗!
  • Vue3 中 toValue 与 unref 深度解析:异同、场景与最佳实践
  • 单片机学习笔记.AD/DA(略含有SPI,用的是普中开发板上的XPT2046芯片)
  • 力扣209:长度最小的子数组
  • 锁定中科院1区TOP!融合LSTM与Attention做时间序列预测 !
  • Metering Solution for Solar + Storage光伏+储能计量解决方案 UL 2735 Certification功率表能源监测电表
  • 电池自动生产线:科技赋能下的高效制造新范式
  • ‌CASE WHEN THEN ELSE END‌
  • GitHub 趋势日报 (2025年07月29日)
  • 【记录资源】
  • Linux基于nginx及其相关工具查看网站访问记录
  • FreeRTOS 在任务中创建优先级更高的任务会立刻切换任务吗?