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
编辑 /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.';"
允许远程访问:
- 修改
postgresql.conf
:
sudo vi /usr/local/pgsql/data/postgresql.conf
修改:
listen_addresses = '*'
- 修改
pg_hba.conf
:
sudo vi /usr/local/pgsql/data/pg_hba.conf
添加:
host all all 0.0.0.0/0 md5
- 重启服务:
sudo systemctl restart postgresql
防火墙设置:
sudo firewall-cmd --permanent --add-port=5432/tcp
sudo firewall-cmd --reload
安装后注意事项:
-
默认连接方式:
sudo -u postgres psql
-
重要目录:
- 安装目录:
/usr/local/pgsql
- 数据目录:
/usr/local/pgsql/data
- 配置文件:
/usr/local/pgsql/data/postgresql.conf
- 安装目录:
-
性能优化:
根据服务器内存大小调整shared_buffers
等参数(在postgresql.conf
中) -
版本升级:
后续升级新版本时,建议使用 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
删除后再执行其他安装命令就正常了。