PostgreSQL 18 离线安装完整指南(openEuler 24.03)

来源:本站原创 点击数: 发布时间:2025年10月14日

一,前提条件

  • 系统:openEuler 24.03 LTS-SP1 x86_64

  • 已下载 PostgreSQL 18 源码包(PostgreSQL: File Browser)本篇采用编译方式安装

  • 已安装依赖:

    • readline ≥ 8.2

    • zlib ≥ 1.2.13

    • perl ≥ 5.38

已确认依赖:

rpm -q readline zlib perl

二,创建 PostgreSQL 用户

sudo useradd -r -m -d /usr/local/pgsql18 -s /bin/bash postgres

说明:

  • -r:系统用户

  • -m:创建家目录

  • -d /usr/local/pgsql18:家目录

  • -s /bin/bash:shell

确保安装目录归属:

sudo chown -R postgres:postgres /usr/local/pgsql18

三,安装 PostgreSQL 18

源码编译安装

tar -xf postgresql-18.x.tar.gz
cd postgresql-18.x
./configure --prefix=/usr/local/pgsql18
make
sudo make install

四,初始化数据库

切换到 postgres 用户:

sudo su - postgres

初始化数据库:

/usr/local/pgsql18/bin/initdb -D /usr/local/pgsql18/data
  • 默认启用 trust 本地认证,可在 pg_hba.conf 中修改

  • 初始化成功会输出:

Success. You can now start the database server using:
    /usr/local/pgsql18/bin/pg_ctl -D /usr/local/pgsql18/data -l logfile start

五,启动数据库

/usr/local/pgsql18/bin/pg_ctl -D /usr/local/pgsql18/data -l /usr/local/pgsql18/logfile start
  • 查看进程:

ps aux | grep postgres
  • 验证连接:

/usr/local/pgsql18/bin/psql -U postgres

六,配置 systemd 服务(开机自启)

创建服务文件  vi /etc/systemd/system/postgresql.service

[Unit]
Description=PostgreSQL 18 database server
After=network.target

[Service]
Type=forking
User=postgres
Group=postgres
ExecStart=/usr/local/pgsql18/bin/pg_ctl -D /usr/local/pgsql18/data -l /usr/local/pgsql18/logfile start
ExecStop=/usr/local/pgsql18/bin/pg_ctl -D /usr/local/pgsql18/data stop
ExecReload=/usr/local/pgsql18/bin/pg_ctl -D /usr/local/pgsql18/data reload
PIDFile=/usr/local/pgsql18/data/postmaster.pid

[Install]
WantedBy=multi-user.target

重载 systemd 并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo systemctl status postgresql
  • Active: active (running) → PostgreSQL 已启动

  • 使用 sudo systemctl stop postgresql 停止服务

  • 使用 sudo systemctl restart postgresql 重启服务


七,验证数据库功能

sudo su - postgres
/usr/local/pgsql18/bin/psql -U postgres

-- 测试创建数据库和表
CREATE DATABASE testdb;
\c testdb
CREATE TABLE t1(id serial PRIMARY KEY, name text);
INSERT INTO t1(name) VALUES('openEuler');
SELECT * FROM t1;
  • 能正常执行 SQL 说明 PostgreSQL 安装成功


以上介绍了离线安装 PostgreSQL 18、初始化数据库、配置 systemd 服务的完整流程,可直接在 openEuler 24.03 上使用。