本文基于openEuler/银河麒麟V10国产Linux系统,从安装前环境检查与配置开始,逐步完成openGauss 6.0.2轻量版单节点的安装、初始化、密码配置、认证适配及开机自启,所有步骤均结合实操反馈优化,包含实际文件名、路径及避坑要点,可直接落地执行。
一、安装前环境配置(root用户操作,核心基础)
安装前需完成系统环境检查、依赖安装、用户创建及目录权限配置,避免后续出现权限不足、依赖缺失等问题。
1.1 系统环境检查
先确认系统架构、内核版本及SELinux状态,确保符合openGauss 6.0.2运行要求。
# 切换至root用户(全程环境配置需root权限)
su - root
# 1. 检查系统架构(需x86_64,openGauss 6.0.2暂不支持arm架构单节点)
uname -m
# 预期输出:x86_64
# 2. 检查内核版本(建议5.0+,适配国产Linux系统)
uname -r
# 示例输出:5.14.0-xxx.el9.x86_64
# 3. 检查SELinux状态(建议设置为Permissive,避免权限拦截)
getenforce
# 若输出Enforcing,执行以下命令临时关闭(永久关闭需修改配置)
setenforce 0
# 永久关闭(可选,需重启生效)
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
# 4. 关闭防火墙(开发/测试环境,生产环境需配置规则)
systemctl stop firewalld
systemctl disable firewalld
1.2 安装依赖包
openGauss依赖libaio、libnsl等库,需提前安装,避免初始化时缺失依赖。
# 适配openEuler/银河麒麟(yum源)
yum install -y libaio-devel libnsl libnsl2-devel openssl-devel flex bison
# 验证依赖是否安装成功
rpm -qa | grep -E "libaio|libnsl|openssl"
# 预期输出包含对应依赖包名,如libaio-0.3.112-1.el9.x86_64
1.3 创建openGauss专属用户及目录
openGauss禁止root用户直接运行,需创建专属用户omm及安装/数据目录,并配置权限。
# 1. 创建omm用户组及用户
groupadd dbgrp
useradd -g dbgrp omm
passwd omm # 为omm设置密码,示例:Omm@123456(后续切换用户需输入)
# 2. 创建安装目录及数据目录(实际路径:/usr/local/opengauss)
mkdir -p /usr/local/opengauss
mkdir -p /usr/local/opengauss/data
mkdir -p /usr/local/opengauss/log # 日志目录,便于后续排查
# 3. 配置目录权限(仅omm用户可读写,符合安全规范)
chown -R omm:dbgrp /usr/local/opengauss
chmod -R 700 /usr/local/opengauss # 严格权限,避免其他用户访问
1.4 配置系统资源限制(解决ulimit警告)
提前配置omm用户的文件描述符及进程数限制,避免后续登录omm时出现“ulimit: open files:无法修改 limit 值”警告。
# 编辑系统限制配置文件
vim /etc/security/limits.conf
# 在文件末尾添加以下内容(适配omm用户)
omm soft nofile 65535
omm hard nofile 65535
omm soft nproc 65535
omm hard nproc 65535
# 保存退出:Esc → :wq
# 验证配置(切换至omm用户,需重新登录生效)
su - omm
ulimit -n # 预期输出:65535
ulimit -u # 预期输出:65535
su - root # 切回root,继续后续操作
1.5 上传并解压openGauss安装包
假设安装包已上传至root用户的/root目录(实际文件名:openGauss-6.0.2-CentOS-64bit.tar.bz2,需根据实际下载的包名调整)。
# 1. 进入安装包所在目录
cd /root
# 2. 解压安装包至/usr/local目录(实际解压后会生成openGauss文件夹)
tar -jxvf openGauss-6.0.2-CentOS-64bit.tar.bz2 -C /usr/local/
# 3. 再次确认目录权限(避免解压后权限变更)
chown -R omm:dbgrp /usr/local/opengauss
chmod -R 700 /usr/local/opengauss
二、数据库安装与初始化(omm用户操作)
openGauss的初始化工具gs_initdb需以omm用户执行,核心是指定数据目录、编码格式及管理员用户。
2.1 切换omm用户并配置环境变量
# 切换至omm用户(加载用户环境)
su - omm
# 配置openGauss环境变量(临时生效,如需永久生效可写入~/.bashrc)
export GAUSSHOME=/usr/local/opengauss
export PATH=$GAUSSHOME/bin:$PATH
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
export PGDATA=/usr/local/opengauss/data
# 验证环境变量(关键,避免工具路径找不到)
echo $GAUSSHOME
# 预期输出:/usr/local/opengauss
gs_ctl --version
# 预期输出:gs_ctl (openGauss 6.0.2) ... ,说明环境变量生效
2.2 执行数据库初始化
初始化时指定数据目录、编码(UTF8)、管理员用户(omm),避免后续出现乱码或权限问题。
# 执行初始化命令(日志输出至指定目录,便于排查)
gs_initdb -D $PGDATA -E UTF8 -U omm -W 'Temp@123456' --nodename=single_node
# 参数说明:
# -D $PGDATA:指定数据目录(即/usr/local/opengauss/data)
# -E UTF8:设置编码为UTF8,支持中文
# -U omm:指定管理员用户为omm
# -W 'Temp@123456':设置初始临时密码(后续需修改,仅临时使用)
# --nodename=single_node:单节点部署,节点名自定义
# 初始化成功关键提示:
# WARNING: enabling "trust" authentication for local connections
# You can change this by editing pg_hba.conf or using the option -A, or
# --auth-local and --auth-host, the next time you run gs_initdb.
# Success. You can now start the database server of single node using:
# gaussdb -D /usr/local/opengauss/data --single_node
# or
# gs_ctl start -D /usr/local/opengauss/data -Z single_node -l logfile
三、核心配置优化(认证+密码,root+omm协同)
初始化后默认启用trust免密认证,需修改为md5密码认证(6.0.2单节点仅兼容md5,scram-sha-256会导致启动失败),并重置omm密码(规避密码重用策略)。
3.1 修改pg_hba.conf认证配置(root用户)
# 切回root用户,编辑认证配置文件
su - root
vim /usr/local/opengauss/data/pg_hba.conf
# 找到以下默认规则(初始化后自带)
# local all all trust
# host all all 127.0.0.1/32 trust
# 将trust替换为md5(最终安全认证方式)
local all all md5
host all all 127.0.0.1/32 md5
# 保存退出:Esc → :wq
# 配置权限(确保omm用户可读取)
chown omm:dbgrp /usr/local/opengauss/data/pg_hba.conf
chmod 600 /usr/local/opengauss/data/pg_hba.conf
3.2 配置密码加密类型(适配md5,omm用户)
6.0.2单节点不支持password_encryption_type=2(scram),需设置为1(md5),确保密码加密与认证方式匹配。
# 切换至omm用户
su - omm
# 执行gs_guc设置加密类型(修改postgresql.conf)
gs_guc set -D $PGDATA -c "password_encryption_type=1"
# 成功提示:
# expected instance path: [/usr/local/opengauss/data/postgresql.conf]
# gs_guc set: password_encryption_type=1: [/usr/local/opengauss/data/postgresql.conf]
# Total instances: 1. Failed instances: 0.
# Success to perform gs_guc!
3.3 重启数据库并重置omm密码(规避重用策略)
6.0.2版本密码修改有严格限制:新密码需全新(未使用过),且需用ALTER ROLE+REPLACE语法。
# 1. 启动数据库(单节点模式)
gs_ctl start -D $PGDATA -Z single_node -l /usr/local/opengauss/log/start.log
# 2. 登录数据库(使用初始化时的临时密码Temp@123456)
gsql -d postgres -U omm -p 5432 -W 'Temp@123456' -h /tmp
# 3. 重置为全新密码(示例:OpenGauss@999,需满足大小写+数字+特殊字符,未使用过)
ALTER ROLE omm IDENTIFIED BY 'OpenGauss@999' REPLACE 'Temp@123456';
# 成功提示:ALTER ROLE
# 4. 退出数据库
\q
# 5. 验证新密码登录(核心验证)
gsql -d postgres -U omm -p 5432 -W 'OpenGauss@999' -h /tmp
# 成功进入提示符:openGauss=# ,说明密码修改及认证配置生效
\q # 退出
四、配置开机自启(systemd服务,root用户)
基于实操反馈,采用“su – omm -c”加载完整环境变量,Type设为oneshot适配一次性启动逻辑,避免环境变量缺失或进程捕获失败。
4.1 创建systemd服务文件
# 编辑服务配置文件(实际路径:/etc/systemd/system/opengauss.service)
su - root
vim /etc/systemd/system/opengauss.service
写入以下内容(路径、命令均贴合实际部署):
[Unit]
Description=OpenGauss 6.0.2 Single Node Server
After=syslog.target network.target local-fs.target # 依赖网络及文件系统就绪
Documentation=man:gaussdb(1)
[Service]
Type=oneshot # 适配一次性启动命令
RemainAfterExit=yes # 命令执行后标记服务为活跃
# 启动命令:su - omm加载环境,日志输出至指定文件
ExecStart=/bin/su - omm -c "/usr/local/opengauss/bin/gs_ctl start -D /usr/local/opengauss/data -Z single_node -l /usr/local/opengauss/log/start.log"
# 停止命令:快速停止,避免数据丢失
ExecStop=/bin/su - omm -c "/usr/local/opengauss/bin/gs_ctl stop -D /usr/local/opengauss/data -M fast"
# 重启命令
ExecReload=/bin/su - omm -c "/usr/local/opengauss/bin/gs_ctl restart -D /usr/local/opengauss/data -Z single_node"
# 资源限制(已提前配置,此处兜底)
LimitNOFILE=65535
LimitNPROC=65535
TimeoutSec=300 # 启动超时时间(5分钟)
[Install]
WantedBy=multi-user.target # 多用户模式下自启
4.2 启用并验证自启服务
# 1. 配置服务文件权限(root专属,避免篡改)
chmod 644 /etc/systemd/system/opengauss.service
chown root:root /etc/systemd/system/opengauss.service
# 2. 重新加载systemd配置(使新服务生效)
systemctl daemon-reload
# 3. 启用开机自启(核心步骤,永久生效)
systemctl enable opengauss.service
# 成功提示:Created symlink /etc/systemd/system/multi-user.target.wants/opengauss.service → /etc/systemd/system/opengauss.service.
# 4. 手动启动服务,验证配置
systemctl start opengauss.service
# 5. 查看服务状态(关键验证)
systemctl status opengauss.service -l
# 预期正常输出:
# ● opengauss.service - OpenGauss 6.0.2 Single Node Server
# Loaded: loaded (/etc/systemd/system/opengauss.service; enabled; vendor preset: disabled)
# Active: active (exited) since Fri 2025-12-05 16:30:00 CST; 10s ago
# Docs: man:gaussdb(1)
# Process: 12345 ExecStart=/bin/su - omm -c /usr/local/opengauss/bin/gs_ctl start -D /usr/local/opengauss/data -Z single_node -l /usr/local/opengauss/log/start.log (code=exited, status=0/SUCCESS)
# Main PID: 12345 (code=exited, status=0/SUCCESS)
五、全链路验证(确保部署无遗漏)
从环境、服务、数据库三个维度验证,包含开机自启终极验证,确保部署稳定。
5.1 基础环境验证(root用户)
# 1. 验证自启配置
systemctl is-enabled opengauss.service
# 预期输出:enabled
# 2. 验证服务状态
systemctl status opengauss.service
# 预期输出:active (exited)
# 3. 验证防火墙状态
systemctl status firewalld
# 预期输出:inactive (dead)
5.2 数据库状态验证(omm用户)
# 切换至omm用户
su - omm
# 1. 查看数据库核心状态
gs_ctl query -D $PGDATA
# 预期输出:
# HA state:
# local_role : Normal
# static_connections : 0
# db_state : Normal
# detail_information : Normal
# 2. 验证数据库进程
ps aux | grep gaussdb | grep -v grep
# 预期输出:omm 12360 0.5 2.1 6351752 687024 ? Ssl 16:30 0:02 /usr/local/opengauss/bin/gaussdb -D /usr/local/opengauss/data
# 3. 验证SQL执行
gsql -d postgres -U omm -p 5432 -W 'OpenGauss@999' -h /tmp -c "SELECT current_date;"
# 预期输出:current_date
# --------------
# 2025-12-05
# (1 row)
5.3 开机自启终极验证(root用户)
重启服务器,无需手动操作,验证数据库是否自动启动。
# 重启服务器
reboot
# 重启后登录root用户,执行以下验证
# 1. 验证服务自启
systemctl status opengauss.service
# 预期输出:active (exited)
# 2. 验证数据库运行(切换至omm用户)
su - omm
gs_ctl query -D $PGDATA
# 预期输出:db_state: Normal
# 3. 验证连接
gsql -d postgres -U omm -p 5432 -W 'OpenGauss@999' -h /tmp -c "SELECT version();"
# 预期输出openGauss 6.0.2版本信息
六、常用运维命令与日志位置(留存备用)
6.1 核心运维命令
| 操作场景 | 命令 | 执行用户 | 备注 |
|---|---|---|---|
| 启动服务 | systemctl start opengauss.service | root | 通过systemd启动,适配自启逻辑 |
| 停止服务 | systemctl stop opengauss.service | root | 快速停止,避免数据丢失 |
| 重启服务 | systemctl restart opengauss.service | root | 配置变更后生效 |
| 查看数据库状态 | gs_ctl query -D /usr/local/opengauss/data | omm | 核心状态验证 |
| 连接数据库 | gsql -d postgres -U omm -p 5432 -W ‘OpenGauss@999’ -h /tmp | omm | 密码需替换为实际设置值 |
| 查看服务日志 | journalctl -u opengauss.service -f | root | 实时查看自启服务日志 |
| 查看数据库启动日志 | cat /usr/local/opengauss/log/start.log | omm | 初始化/启动失败时排查 |
| 查看运行日志 | tail -f /usr/local/opengauss/data/pg_log/postgresql-$(date +%Y-%m-%d).log | omm | SQL执行、故障排查核心日志 |
6.2 关键文件路径汇总
- 安装目录:/usr/local/opengauss
- 数据目录:/usr/local/opengauss/data
- 日志目录:/usr/local/opengauss/log(自定义)、/usr/local/opengauss/data/pg_log(系统默认)
- 认证配置文件:/usr/local/opengauss/data/pg_hba.conf
- 核心配置文件:/usr/local/opengauss/data/postgresql.conf
- 自启服务文件:/etc/systemd/system/opengauss.service
七、实操避坑要点(结合实际反馈总结)
- 用户权限禁忌:所有gs_*工具(gs_ctl/gs_guc/gs_initdb/gsql)必须以omm用户执行,root用户直接执行会报“cannot be run as root”错误。
- 认证方式适配:6.0.2单节点不支持scram-sha-256,配置后会出现“invalid authentication method ‘scram-sha-256’”,导致数据库启动失败,仅兼容md5/trust。
- 密码修改限制:新密码需“完全全新”(未使用过),否则触发“The password cannot be reused”;且必须用ALTER ROLE … REPLACE语法,gs_guc -W参数无效。
- 自启服务配置:systemd服务需用“su – omm -c”加载完整环境变量,避免LD_LIBRARY_PATH缺失导致gs_ctl找不到依赖库;Type设为oneshot+RemainAfterExit=yes,避免进程捕获失败。
- 目录权限严格:/usr/local/opengauss及子目录必须归omm:dbgrp所有,权限设为700,否则会出现“permission denied”或数据访问异常。
- 日志排查核心:启动/连接失败时,优先查看/usr/local/opengauss/log/start.log(启动日志)和pg_log目录下的运行日志,可快速定位问题。
![图片[1]-麒麟V10服务器版安装openGauss 6.0轻量版教程-美金梦](https://meijinmeng.cn/wp-content/uploads/2025/11/20251205164727913-麒麟-V10安装opengauss轻量版-1024x513.png)











暂无评论内容