OpenEuler学习笔记(三十三):在 OpenEuler 上搭建 OpenGauss 数据库环境

在这里插入图片描述

在 OpenEuler 上搭建 OpenGauss 数据库环境需要按照以下步骤进行。OpenGauss 是华为开源的一款高性能关系型数据库,支持高并发、高可用性和分布式部署。


1. 环境准备

确保你的 OpenEuler 系统满足以下要求:

  • 操作系统:OpenEuler 20.03 LTS 或更高版本。
  • 硬件要求
    • 至少 4GB 内存。
    • 至少 20GB 磁盘空间。
  • 依赖工具python3libaio-devellibnsl 等。
1.1 安装依赖
sudo dnf install -y python3 libaio-devel libnsl
1.2 创建用户和组

OpenGauss 不建议使用 root 用户运行,因此需要创建一个专用用户:

sudo groupadd dbgrp
sudo useradd -g dbgrp omm
sudo passwd omm  # 设置密码

2. 下载 OpenGauss

从 OpenGauss 的官方仓库或镜像站点下载安装包。

2.1 下载 OpenGauss

访问 OpenGauss 官网 或 GitHub 仓库,选择适合 OpenEuler 的版本。

例如,下载 OpenGauss 3.0.0:

wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.0.0/x86_openEuler/openGauss-3.0.0-openEuler-64bit.tar.gz
2.2 解压安装包
tar -xzf openGauss-3.0.0-openEuler-64bit.tar.gz
cd openGauss

3. 配置 OpenGauss

3.1 创建数据目录
sudo mkdir -p /opt/opengauss/data
sudo chown -R omm:dbgrp /opt/opengauss
3.2 修改配置文件

编辑 clusterconfig.xml 文件,配置数据库实例参数:

<ROOT>
    <CLUSTER>
        <PARAM name="clusterName" value="opengauss_cluster"/>
        <PARAM name="nodeNames" value="node1"/>
        <PARAM name="backIp1s" value="192.168.1.100"/> <!-- 替换为你的服务器IP -->
        <PARAM name="gaussdbAppPath" value="/opt/opengauss/app"/>
        <PARAM name="gaussdbLogPath" value="/opt/opengauss/log"/>
        <PARAM name="gaussdbToolPath" value="/opt/opengauss/tool"/>
        <PARAM name="corePath" value="/opt/opengauss/corefile"/>
        <PARAM name="clusterType" value="single-inst"/>
    </CLUSTER>
    <DEVICELIST>
        <DEVICE sn="node1">
            <PARAM name="name" value="node1"/>
            <PARAM name="azName" value="AZ1"/>
            <PARAM name="azPriority" value="1"/>
            <PARAM name="backIp1" value="192.168.1.100"/> <!-- 替换为你的服务器IP -->
            <PARAM name="sshIp1" value="192.168.1.100"/> <!-- 替换为你的服务器IP -->
            <PARAM name="dataNum" value="1"/>
            <PARAM name="dataPortBase" value="15400"/>
            <PARAM name="dataNode1" value="/opt/opengauss/data/dn"/>
        </DEVICE>
    </DEVICELIST>
</ROOT>
3.3 初始化数据库

使用 gs_initdb 命令初始化数据库:

sudo -u omm gs_initdb -D /opt/opengauss/data --nodename=node1 -w your_password
  • -D:指定数据目录。
  • --nodename:指定节点名称。
  • -w:设置数据库管理员密码。

4. 启动 OpenGauss

4.1 启动数据库
sudo -u omm gs_ctl start -D /opt/opengauss/data
4.2 检查状态
sudo -u omm gs_ctl status -D /opt/opengauss/data

5. 连接 OpenGauss

5.1 使用 gsql 连接
sudo -u omm gsql -d postgres -p 15400 -r
  • -d:指定数据库(默认是 postgres)。
  • -p:指定端口(默认是 15400)。
5.2 创建用户和数据库
CREATE USER testuser WITH PASSWORD 'testpassword';
CREATE DATABASE testdb OWNER testuser;

6. 配置远程访问(可选)

6.1 修改配置文件

编辑 /opt/opengauss/data/pg_hba.conf,添加以下内容以允许远程访问:

host    all             all             0.0.0.0/0               md5
6.2 重启数据库
sudo -u omm gs_ctl restart -D /opt/opengauss/data

7. 验证安装

通过远程客户端(如 DBeaver、pgAdmin)连接 OpenGauss 数据库,验证是否正常运行。


8. 其他注意事项

  • 防火墙配置:确保开放 OpenGauss 的端口(默认 15400)。
  • 备份与恢复:使用 gs_dumpgs_restore 工具进行数据备份和恢复。
  • 性能优化:根据业务需求调整数据库参数(如 postgresql.conf)。

通过以上步骤,你可以在 OpenEuler 上成功搭建 OpenGauss 数据库环境。如果需要更复杂的部署(如分布式集群),可以参考 OpenGauss 的官方文档进行配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/970993.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智能编程助手功能革新与价值重塑之:GitHub Copilot

引言&#xff1a; GitHub Copilot 的最新更新为开发者带来了显著变化&#xff0c;其中 Agent Mode 功能尤为引人注目。该模式能够自动识别并修复代码错误、自动生成终端命令&#xff0c;并具备多级任务推理能力&#xff0c;这使得开发者在开发复杂功能时&#xff0c;可大幅减少…

【数据结构】(9) 优先级队列(堆)

一、优先级队列 优先级队列不同于队列&#xff0c;队列是先进先出&#xff0c;优先级队列是优先级最高的先出。一般有两种操作&#xff1a;返回最高优先级对象&#xff0c;添加一个新对象。 二、堆 2.1、什么是堆 堆也是一种数据结构&#xff0c;是一棵完全二叉树&#xff0c…

AI大模型的文本流如何持续吐到前端,实时通信的技术 SSE(Server-Sent Events) 认知

写在前面 没接触过 SSE&#xff08;Server-Sent Events&#xff09;&#xff0c;AI大模型出来之后&#xff0c;一直以为文本流是用 WebSocket 做的偶然看到返回到报文格式是 text/event-stream,所以简单认知&#xff0c;整理笔记博文内容涉及 SSE 认知&#xff0c;以及对应的 D…

计时器任务实现(保存视频和图像)

下面是一个简单的计时器任务实现&#xff0c;可持续地每秒保存一幅图像&#xff0c;也可持续地每60秒保存一个视频&#xff0c;图像和视频均以当前时间命名&#xff1a; TimerTask类的实现如下&#xff1a; class TimerTask { public:TimerTask(const std::string& path):…

力扣19题——删除链表的倒数第 N 个结点

#题目 #代码 //定义虚拟头结点ListNode curnew ListNode(0,head); //定义两个指针指向虚拟头结点ListNode lcur;ListNode rcur;for(int i0;i<n;i){rr.next;}while(r!null){rr.next;ll.next;} //l.next就是我们要删除的那个元素if(l.next!null){l.nextl.next.next;}return c…

网络工程师 (42)IP地址

一、定义与功能 IP地址是IP协议提供的一种统一的地址格式&#xff0c;它为互联网上的每一个网络和每一台主机分配一个逻辑地址&#xff0c;以此来屏蔽物理地址的差异。这种地址分配方式确保了用户在连网的计算机上操作时&#xff0c;能够高效且方便地从众多计算机中选出自己所需…

记忆力训练day19

万能字母组合编码法 所有的文字和字母的背后都有画面 练的不是记单词&#xff0c;练的是注意力给到单词&#xff0c;出什么画面&#xff0c;然后画面与画面之间进行连接 拆的过程就是找熟词的过程 要关注自己的回忆路径是什么&#xff1f;也就是你是怎么回忆起来的&#xff0c…

flutter image_cropper插件安装后 打包apk 报错命名空间问题

本篇文章主要讲解&#xff0c;Flutter安装完新依赖打包apk报错 A problem occurred configuring project ‘:image_cropper’. 命名空间问题的解决办法及原因说明。 日期&#xff1a;2025年2月15日 作者&#xff1a;任聪聪 一、报错现象&#xff1a; 报文信息&#xff1a; FAI…

八、SPI读写XT25数据

8.1 SPI 简介 SPI&#xff08;Serial Peripheral Interface&#xff0c;串行外设接口&#xff09;是一种同步串行通信协议&#xff0c;广泛用于嵌入式系统中连接微控制器与外围设备&#xff0c;如传感器、存储器、显示屏等。 主要特点 1. 全双工通信&#xff1a;支持同时发送…

kibana es 语法记录 elaticsearch

目录 一、认识elaticsearch 1、什么是正向索引 2、什么是倒排索引 二、概念 1、说明 2、mysql和es的对比 三、mapping属性 1、定义 四、CRUD 1、查看es中有哪些索引库 2、创建索引库 3、修改索引库 4、删除索引库 5、新增文档 6、删除文档 5、条件查询 一、认识…

三、Unity基础(主要框架)

一、Unity场景概念 如果把游戏运行过程理解成表演&#xff0c;那么场景就是舞台&#xff1b; 场景本质上是一个配置文件&#xff0c;这个配置文件决定了场景中有哪些东西&#xff1b; 二、Scene和Game窗口 1、Scene 滚轮缩放、拖动 单独选中也可以 最下面这个是全能工具…

pdf文档提取信息

目录 一、前言二、核心代码说明1、PyPDF2提取文本2、pdfplumber提取文本和表格3、fitz提取文本和图片4、fitz按页提取图片一、前言 本博客文章介绍pdf的文本、图片、表格等信息提取的技术方案对比。目前比较熟知的是pdfplumber 、PyPDF2 、fitz(PyMuPDF)。 它们之间对比如下 …

Git指南-从入门到精通

代码提交和同步命令 流程图如下&#xff1a; 第零步: 工作区与仓库保持一致第一步: 文件增删改&#xff0c;变为已修改状态第二步: git add &#xff0c;变为已暂存状态 bash $ git status $ git add --all # 当前项目下的所有更改 $ git add . # 当前目录下的所有更改 $ g…

我们来学HTTP/TCP -- 三次握手?

三次握手 题记三次呼叫结语 题记 来&#xff0c;我们来演示下川普王和普京帝会面了 哎呦&#xff01;你好你好&#xff0c;握手…哎嗨&#xff01;侬好侬好&#xff0c;握手…欧嘿呦玛斯&#xff0c;握手… 抓狂啊&#xff01;作孽啊!!! 不说人话啊! 关键的是&#xff0c;“三…

kubectl top输出与Linux free命令不一致原因?

当你在 Kubernetes 集群中使用 kubectl top 命令查看资源使用情况时&#xff0c;可能会发现与在节点上直接运行 Linux free 命令得到的结果不一致。这种不一致可能源于多个原因&#xff0c;以下是一些关键因素&#xff1a; MobaXterm中文版下载&#xff1a; https://pan.quark…

【设计模式】【行为型模式】迭代器模式(Iterator)

&#x1f44b;hi&#xff0c;我不是一名外包公司的员工&#xff0c;也不会偷吃茶水间的零食&#xff0c;我的梦想是能写高端CRUD &#x1f525; 2025本人正在沉淀中… 博客更新速度 &#x1f44d; 欢迎点赞、收藏、关注&#xff0c;跟上我的更新节奏 &#x1f3b5; 当你的天空突…

论文解读之DeepSeek R1

今天带来DeepSeek R1的解读 一、介绍 deepseek主打复杂推理任务&#xff0c;如数学、代码任务。 R1以预训练过的V1-base初始化&#xff0c;主要发挥了RL在长思维链上的优势&#xff0c;R1-Zero直接RL而在前置步骤中不进行SFT&#xff0c;即缺少了有监督的指令微调阶段&#…

Linux:用 clang 编译带 sched_ext 功能内核

文章目录 1. 前言2. 编译过程2.1 准备内核源代码2.2 安装编译工具2.3 配置、编译、运行2.3.1 配置2.3.2 编译2.3.3 运行 3. 参考资料 1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任何承诺。 2. 编译过程 …

FPGA之​​​​​​​​​​​​​​HRBANK与HOBANK有什么区别?

在FPGA设计中&#xff0c;HP Bank&#xff08;High-Performance Bank&#xff09;与HR Bank&#xff08;High-Range Bank&#xff09;是针对I/O电气特性划分的不同区域&#xff0c;二者的主要区别在于支持的电压范围、信号速率以及应用场景。以下是具体对比&#xff1a; 核心区…

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_ssl_init 函数

#if (NGX_OPENSSL)ngx_ssl_init(log); #endif objs/ngx_auto_config.h 中 #ifndef NGX_OPENSSL #define NGX_OPENSSL 1 #endif 所以这个条件编译成立 NGX_OPENSSL 是一个宏定义&#xff0c;用于控制与 OpenSSL 相关的功能是否被启用 若用户通过./configure参数&#xff08;如-…