麒麟V10服务器版安装openGauss 6.0轻量版教程

本文基于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.serviceroot通过systemd启动,适配自启逻辑
停止服务systemctl stop opengauss.serviceroot快速停止,避免数据丢失
重启服务systemctl restart opengauss.serviceroot配置变更后生效
查看数据库状态gs_ctl query -D /usr/local/opengauss/dataomm核心状态验证
连接数据库gsql -d postgres -U omm -p 5432 -W ‘OpenGauss@999’ -h /tmpomm密码需替换为实际设置值
查看服务日志journalctl -u opengauss.service -froot实时查看自启服务日志
查看数据库启动日志cat /usr/local/opengauss/log/start.logomm初始化/启动失败时排查
查看运行日志tail -f /usr/local/opengauss/data/pg_log/postgresql-$(date +%Y-%m-%d).logommSQL执行、故障排查核心日志

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轻量版教程-美金梦
© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容