openEuler 是由华为发起、开源社区维护的企业级 Linux 操作系统。它主要有以下几个特点:
内核与架构:基于 Linux 内核,原生支持 x86-64 和 ARM64 (AArch64) 等多种架构,能充分发挥 Intel、AMD 及鲲鹏等芯片性能。
定位与性能:专为服务器、云计算和边缘计算设计,在调度、内存和 IO 方面做了深度优化,特别适合高并发的数据库场景。
生态与兼容:与 OpenHarmony 生态打通,并且完美兼容你准备安装的 openGauss 数据库等华为全栈软件,是同生态下的最优底座。
版本模型:分为长期支持版(LTS,如 22.03)和创新版,服务器生产环境应优先选择 LTS 版本以保证稳定。
我使用的系统版本是openEuler 22.03 LTS SP4。安装的opengauss 22.03 LTS版本。
系统官网链接: openEuler官网
系统镜像下载链接: openEuler 22.03 LTS SP4镜像下载链接
opengauss数据库官网链接: opengauss数据库官网链接

系统我是最小化安装部署的:

1. 安装 Development Tools 与 Base 组包
bash
dnf -y group install "Development Tools"
1.1安装依赖包(官网要求)
bash
dnf -y install libaio-devel readline-devel expect libedit-devel libxml2-devel lz4-devel numactl-devel unixODBC-devel java-1.8.0-openjdk-devel openblas-devel

安装基本工具
bash
dnf -y install vim lrzsz rsync bash-completion wget curl tar unzip net-tools bind-utils psmisc tree htop which bc p7zip
bash
dnf -y upgrade
2.下载opengauss数据库
bash
mkdir -p /usr/local/src/opengauss && \
cd /usr/local/src/opengauss && \
curl -LO https://opengauss.obs.cn-south-1.myhuaweicloud.com/6.0.5/openEuler22.03/x86/openGauss-All-6.0.5-openEuler22.03-x86_64.tar.gz && \
tar zxf openGauss-All-6.0.5-openEuler22.03-x86_64.tar.gz

2.1解压OM 和 Server 包
bash
cd /usr/local/src/opengauss
解压 OM 运维管理工具
bash
tar -xf openGauss-OM-6.0.5-openEuler22.03-x86_64.tar.gz
有lib 和script目录。
解压 Server 数据库服务包
bash
tar -xjf openGauss-Server-6.0.5-openEuler22.03-x86_64.tar.bz2
有bin、etc、include、share、simpleInstall 目录
解压 CM 集群管理(单机也建议解压)
bash
tar -zxf openGauss-CM-6.0.5-openEuler22.03-x86_64.tar.gz
tool目录
3.创建安装目标目录
bash
mkdir -p /usr/local/opengauss/{app,data,log,tmp,tool,corefile}
4.创建运行用户和组
bash
groupadd dbgrp
useradd -g dbgrp -d /home/omm -m omm
echo "你的密码" | passwd --stdin omm
5. 创建 XML 配置文件
bash
vim /usr/local/src/opengauss/clusterconfig.xml
value值换成变量使用命令一键替换。
bash
cat > /usr/local/src/opengauss/clusterconfig.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<CLUSTER>
<PARAM name="clusterName" value="opengauss" />
<PARAM name="nodeNames" value="$(hostname)" />
<PARAM name="gaussdbAppPath" value="/usr/local/opengauss/app" />
<PARAM name="gaussdbLogPath" value="/usr/local/opengauss/log" />
<PARAM name="tmpMppdbPath" value="/usr/local/opengauss/tmp" />
<PARAM name="gaussdbToolPath" value="/usr/local/opengauss/tool" />
<PARAM name="corePath" value="/usr/local/opengauss/corefile" />
<PARAM name="backIp1s" value="$(hostname -I | awk '{print $1}')" />
</CLUSTER>
<DEVICELIST>
<DEVICE sn="node1">
<PARAM name="name" value="$(hostname)" />
<PARAM name="azName" value="AZ1" />
<PARAM name="azPriority" value="1" />
<PARAM name="backIp1" value="$(hostname -I | awk '{print $1}')" />
<PARAM name="sshIp1" value="$(hostname -I | awk '{print $1}')" />
<PARAM name="dataNum" value="1" />
<PARAM name="dataPortBase" value="15400" />
<PARAM name="dataNode1" value="/usr/local/opengauss/data" />
<PARAM name="dataNode1_syncNum" value="0" />
</DEVICE>
</DEVICELIST>
</ROOT>
EOF
文件内容示例:
xml
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<CLUSTER>
<PARAM name="clusterName" value="opengauss" />
<PARAM name="nodeNames" value="opengauss" />
<PARAM name="gaussdbAppPath" value="/usr/local/opengauss/app" />
<PARAM name="gaussdbLogPath" value="/usr/local/opengauss/log" />
<PARAM name="tmpMppdbPath" value="/usr/local/opengauss/tmp" />
<PARAM name="gaussdbToolPath" value="/usr /local/opengauss/tool" />
<PARAM name="corePath" value="/usr/local/opengauss/corefile" />
<PARAM name="backIp1s" value="192.168.1.100" />
</CLUSTER>
<DEVICELIST>
<DEVICE sn="node1">
<PARAM name="name" value="opengauss" />
<PARAM name="azName" value="AZ1" />
<PARAM name="azPriority" value="1" />
<PARAM name="backIp1" value="192.168.1.100" />
<PARAM name="sshIp1" value="192.168.1.100" />
<PARAM name="dataNum" value="1" />
<PARAM name="dataPortBase" value="15400" />
<PARAM name="dataNode1" value="/usr/local/opengauss/data" />
<PARAM name="dataNode1_syncNum" value="0" />
</DEVICE>
</DEVICELIST>
</ROOT>
6.授权 omm 用户
bash
chown -R omm:dbgrp /usr/local/opengauss
chown -R omm:dbgrp /usr/local/src/opengauss
chmod 755 -R /usr/local/opengauss
7.切换到 omm 用户,执行预安装
bash
su - omm
cd /usr/local/src/opengauss/script

bash
python3 gs_preinstall -U omm -G dbgrp -X /usr/local/src/opengauss/clusterconfig.xml --sep-env-file=/home/omm/env.sh

成功了! 看到 Preinstallation succeeded. 就说明预安装已经通过。
两个警告不用管
ini
Warning: Installation environment contains some warning messages.
Warning: The omm user does not have permission to set crontab.
这是正常的,不影响安装和使用。第一个是环境检查的常规提示,第二个 crontab 权限问题因为 omm 不是 root,不需要自动清理日志的话完全可以忽略。
8.加载环境变量并安装
bash
source /home/omm/env.sh

9.正式安装
bash
gs_install -X /usr/local/src/opengauss/clusterconfig.xml

这里要设置的是数据库管理员 omm 的数据库连接密码,跟之前系统用户 omm 的登录密码是两回事。
设置规则
复杂度要求:至少 8 位,包含大写字母、小写字母、数字、特殊符号中的三种
示例:OpenGauss@123、OmM#2026db
两次输入一致即可,输入你设定的密码(不会显示在屏幕上),回车后会提示:
再输一遍确认,然后会继续安装,最终看到:
Successfully started cluster.
Successfully installed database.就完成了。输入你设好的密码就行。

集群状态显示 Normal,一切正常。
现在验证一下
查看数据库状态
bash
gs_ctl status -D /usr/local/opengauss/data
连接数据库状态
bash
gsql -d postgres -p 15400 -r
连接成功后会进入 openGauss 的命令行界面:
