openGauss环境搭建 | 新手指南

一、搭建准备

openGauss开发需要使用linux环境,先下载远程连接工具Xshell/MobaXterm 。

1. 使用工具连接远程linux服务器,使用root账号远程登录,创建个人账号。

useradd -d /home/xxx -m xxx

2. 设置密码。

passwd xxx

3. 切换到个人账号,以后连接也使用个人账号进行登录。

su - xxx

二、编译openGauss-server

编译openGauss-server需要用到openGauss-server源码和其依赖的第三方软件仓库openGauss-third_party。

在根目录/data/下创建一个自己名字命名的文件夹作为工作目录,进入文件夹,拉取openGauss-server最新源码,建议先fork到自己的gitee仓库,再进行代码拉取,方便后续社区开发代码合入流程,修改代码,提交PR。

mkdir xxx
cd xxx
git clone https://gitee.com/opengauss/openGauss-server.git

openGauss的编译,需要提前把所依赖的开源第三方软件进行编译和构建。

第三方软件工具两种获取方式

1. 源码编译

这些开源的第三方软件存放在仓库openGauss-third_party中,用户拉取代码后可进行编译,通常只用编译一次。若开源软件版本更新,则需要重新构建。

git clone https://gitee.com/opengauss/openGauss-third_party.git
cd openGauss-third_party/build
sh build_all.sh

 2.直接使用编译构建好的文件

由于开源软件编译构建耗时较长,社区提供了三个平台编译好的二进制文件给用户下载

● openEuler_arm: https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/binarylibs/openGauss-third_party_binarylibs_openEuler_arm.tar.gz

● openEuler_x86: https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/binarylibs/openGauss-third_party_binarylibs_openEuler_x86_64.tar.gz

● Centos_x86: https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/binarylibs/openGauss-third_party_binarylibs_Centos7.6_x86_64.tar.gz

我们可以下载openEuler_arm版本的压缩包,使用Xftp工具传输到工作目录,再进行解压,重命名为固定的命名

tar -zxvf openGauss-third_party_binarylibs_openEuler_arm.tar.gz
mv openGauss-third_party_binarylibs_openEuler_arm binarylibs

源码准备好之后就可以进行代码编译了

两种编译方式

1. 一键脚本编译。

使用内置脚本进行编译。

cd openGauss-server
sh build.sh -m release -3rd /data/meicheng/opengauss_src/install/binarylibs  
#debug版将release换成debug

执行过程会持续5-10分钟无反应,自动输出log,最终显示如下内容,表示编译成功

make compile successfully!

导入环境变量,用于后续进行初始化和启动数据库。

export CODE_BASE=_________    #openGauss-server的路径
export GAUSSHOME=$CODE_BASE/mppdb_temp_install/
export LD_LIBRARY_PATH=$GAUSSSHOME/lib:$LD_LIBRARY_PATH
export PATH=$GAUSSHOME/bin:$PATH

2. 手动编译。

cd openGauss-server

配置的环境变量与一键脚本编译的环境变量略有不同。

export CODE_BASE=_________    #openGauss-server的路径
export BINARYLIBS=_________    #binarylibs的路径
export GAUSSHOME=$CODE_BASE/dest/
export GCC_PATH=$BINARYLIBS/buildtools/gcc7.3/
export CC=$GCC_PATH/gcc/bin/gcc
export CXX=$GCC_PATH/gcc/bin/g++
export LD_LIBRARY_PATH=$GAUSSSHOME/lib:$GCC_PATH/gcc/lib64:$GCC_PATH/isl/lib/:$GCC_PATH/mpc/lib/:$GCC_PATH/mpfr/lib/:$GCC_PATH/gmp/lib/:$LD_LIBRARY_PATH
export PATH=$GAUSSHOME/bin:$GCC_PATH/gcc/bin:$PATH

选择版本进行configure

可选择三种目标版本

release:代表生成release版本的二进制程序,该版本编译时,配置GCC高级别优化选项,去除内核调试代码,通常用于生产环境或性能测试环境。

debug:代表生成debug版本的二进制程序,该版本编译时,增加内核代码调试功能,通常用于开发自测环境。

memcheck:代表生成memcheck版本的二进制程序,该版本编译时,实质上是在debug版本的基础上增加了ASAN功能,此版本通常用于定位内存问题。

debug版:

./configure --gcc-version=7.3.0 CC=g++ CFLAGS='-O0' 
--prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug 
--enable-cassert --enable-thread-safety 
--with-readline --without-zlib

release版:

./configure --gcc-version=7.3.0 CC=g++ CFLAGS='-O2 
-g3' --prefix=$GAUSSHOME --3rd=$BINARYLIBS 
--enable-cassert --enable-thread-safety 
--with-readline --without-zlib

memcheck版:

./configure --gcc-version=7.3.0 CC=g++ CFLAGS='-O0' 
--prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug 
--enable-cassert --enable-thread-safety --with-readline 
--without-zlib --enable-memory-check

开始编译

make -sj4
make install -sj4

-s表示silent模式,有些编译信息不会打印出来。

如果使用-j参数,make执行的时候会一直增加并发数,有时会遇到‘cannot allicate memory’的错。一般-j参数后可指定数字为cpu数X2。如编译环境是4CPU,可使用make -j8的参数进行编译。

显示如下内容表示编译成功。

openGauss InstallationGuide complete

三、openGauss-OM编译

openGauss-OM是运维管理模块(OperationManager),提供openGauss日常维护、配置管理的管理接口和工具。

源码编译完openGauss-server代码仓之后,并没有gs_om。需要单独编译openGauss-OM,并将编译好的openGauss-xxx-om.tar.gz的包拷贝到openGauss-server安装包所在的目录,再按照企业版的方式进行安装。

操作步骤

1. 下载代码仓。

git clone https://gitee.com/opengauss/openGauss-OM.git

2. 执行编译。

ocd openGauss-OM
chmod +x build.sh
export BINARYLIBS=/data/XXX/binarylibs      #这里写你的第三方软件包的文件目录
./build.sh -3rd $BINARYLIBS

显示以下内容,表示gauss-OM编译成功

ROOT_DIR:XXXXX
Everything is ready.
success!

进入package目录,将编译好的openGauss-xxx-om.tar.gz的包拷贝到openGauss-server安装包所在的目录,再按照企业版的方式进行安装。

四、产品安装包编译

本步骤是制作openGauss软件安装包,安装包的编译打包过程也集成在build.sh中。

操作步骤

1. 进入openGauss-server目录。

2. 执行命令编译出安装包。

osh build.sh -m [debug | release | memcheck] -3rd [binarylibs path] -pkg

3. 显示如下内容表示安装包编译完成。

make server(all) package success!

4. 打包好的安装包存放在./output目录下。

五、编译后验证

编译结束后,可按以下方式对编译后的openGauss进行验证

1. 建立数据目录和日志目录。

mkdir ~/data
mkdir ~/log

2. 数据库初始化。

gs_initdb -D ~/data --nodename=db1

3. 启动数据库服务器。

gs_ctl start -D ~/data -Z single_node -l ~/log/opengauss.log

4. 进入数据库服务器。

数据库安装完成后默认生成名称为postgres的数据库,可以连接到此数据库进行测试。

gsql -d postgres

连接成功后,会显示类似如下信息。

gsql(一些版本时间信息)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help
openGauss=#

5. 使用openGauss。

5.1 创建数据库用户。

CREATE USER XXX WITH PASSWORD "xxxxxxx";

5.2 设置用户为系统管理员。

GRANT ALL PRIVILEGES TO xxx;

5.3 创建数据库。

CREATE DATABASE db_tpcc OWNER XXX;

5.4 db_tpcc数据库创建完以后,就可以按如下方法退出postgres数据库,使用新用户连接到db_tpcc数据库执行创建表等操作。

\q      #退出当前数据库
gsql -d db_tpcc -U XXX    #连接数据库db_tpcc

5.5 创建SCHEMA。

CREATE SCHEMA test AUTHORIZATION XXX;

5.6 创建表。

CREATE TABLE mytable (name varchar(16), age int);

5.7 向表中插入数据。

INSERT INTO mytable values("XXX", 18);

5.8 查看表中数据。

SELECT * FROM mytable;

六、总结

openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核深度融合华为在数据库领域多年的经验,结合企业级场景需求,持续构建竞争力特性。 

今天分享就到这里了,欢迎交流~ 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【中国电信】光猫 PT632 使用超管权限修改 IP 地址租期时间

背景 由于光猫默认设置的动态 IP 租期是 24 小时,所以每天都会断网一次,严重影响用网体验,所以打算通过修改动态 IP 租期为 一周(最长就一周,没有永久的选项)来改善。 需求 一台电脑(已开启 …

Qt 二维数组的访问与应用

配色方案有多种类型,可以根据不同的需求和应用场景来选择合适的配色方法。在柱状图、饼状图中都会用到不同的配色,本文将配色方案使用二维数组进行存储,对常用的配色进行了整理: 效果图 示例代码 void MainWindow::InitUI() {QS…

java 二分查找(迭代与递归)

二分搜索被定义为一种在排序数组中使用的搜索算法,通过重复将搜索间隔一分为二。二分查找的思想是利用数组已排序的信息,将时间复杂度降低到O(log N)。 二分查找算法示例 何时在数据结构中应用二分查找的条件: 应用二分查找算法&#xff1a…

Android中的传感器类型和接口名称

本文将介绍传感器坐标轴、基础传感器和复合传感器(动作传感器、姿势传感器、未校准传感器和互动传感器)。 1. 传感器坐标轴 许多传感器的传感器事件值在相对于设备静止的特定坐标系中表示。 1.1 移动设备坐标轴 Sensor API 仅与屏幕的自然方向相关&a…

【每日一题】1976. 到达目的地的方案数-2024.3.5

题目: 1976. 到达目的地的方案数 你在一个城市里,城市由 n 个路口组成,路口编号为 0 到 n - 1 ,某些路口之间有 双向 道路。输入保证你可以从任意路口出发到达其他任意路口,且任意两个路口之间最多有一条路。 给你一个整数 n 和二维整数数组 roads ,其中 roads[i] = […

JavaScript的for循环与双重for循环,妈妈再也不用担心我找工作了

学习路线 第一阶段:网页制作 HTML:常用标签,锚点,列表标签,表单标签,表格标签,标签分类,标签语义化,注释,字符实体 CSS:CSS介绍,全局…

解决MySQL 5.7在Redhat 9中启动报错:libncurses.so.5和libtinfo.so.5缺失问题

在使用Linux系统搭建MySQL数据库的过程中,我们往往会遇到各种依赖库的问题,尤其是在安装较旧版本的MySQL时。最近,在RedHat 9(rocky linux 9)系统上安装MySQL 5.7版本时,我遇到了一个典型的依赖库缺失错误&…

无法枚举容器内对象 访问被拒绝

一、什么是“无法枚举容器中的对象。访问被拒绝”错误? 在Windows设备当中,对文件或文件夹的权限进行设置可以有效地保护隐私内容。因此,管理员账户可以对权限进行更改,并且有权决定是否将内容共享给多个用户使用。但是在某些情况…

如何使用Python操作MySQL的各种功能?高级用法?

当今互联网时代,数据处理已经成为了一个非常重要的任务。而MySQL作为一款开源的关系型数据库,被广泛应用于各种场景。本篇博客将介绍如何使用Python操作MySQL的各种功能,以及一些高级用法。 连接MySQL 在Python中,我们可以使用p…

在Vue中搭建Three.js环境(超详细、保姆级),创建场景、相机、渲染器《一》

目录 Three.js简介创建vue项目引入Three.js实际操作环节文件目录创建初始化场景、相机 Three.js简介 Three.js 是一款基于 WebGL的 JavaScript 3D 库,它封装了 WebGL API,为开发者提供了简单易用的 API 来在 Web 浏览器中展示 3D 图形。Three.js 提供了…

CUDA学习笔记04:向量之和

参考资料 CUDA编程模型系列二(向量操作)_哔哩哔哩_bilibili (非常好的学习资料!) vs2019 随意新建一个空项目,按照之前的环境配置配好项目依赖: CUDA学习笔记02:测试程序hello world-CSDN博客 代码结构…

《 前端挑战与未来:如何看待“前端已死”》

在技术领域,时常会有一些激进的言论引发热议,比如近年来不少人声称“前端已死”。这样的言论引发了广泛的讨论和反思。本文将从几个方向探讨这个话题:为什么会出现“前端已死”的言论、如何看待这种说法、前端技术的未来发展趋势以及前端人如…

MS8911S/8921S/8922M/8931S——4ns 延时、轨到轨高速比较器

产品简述 MS8911S/MS8921S/MS8922M/MS8931S 是一款具 有内部迟滞的高速比较器。其电源电压范围为 3.0V- 5.5V ,输入和输出范围均可做到轨到轨。其输出为推 挽结构,兼容 CMOS/TTL 逻辑电平标准。传输延时为 4ns ,且失调电压低。单一比…

在虚拟机vm下的Linux系统下 安装redis 超详细

打开Linux后 右键打开终端 1.输入:su root 登录root 密码是123456 2.然后输入:yum -y install gcc-c 安装gcc基础依赖包 3.yum -y install centos-release-scl 4.yum -y install devtoolset-9-gcc devtoolset-9-gcc-c devtoolset-9-binutils //为了编译最新版本的Redis源码 用…

二维码门楼牌管理系统应用场景:城市规划与土地管理的新利器

文章目录 前言一、城市规划部门的新助手二、门牌数据的深度应用三、支持可持续城市发展四、与城市规划部门的联动 前言 随着科技的不断进步,二维码技术已经深入到我们生活的方方面面。在城市规划与土地管理领域,二维码门楼牌管理系统正成为一项革命性的…

【Selenium】UI自动化|元素定位常见问题

1、报错NoSuchElementException——定位不到元素 分析的可能原因: 页面还没有加载出来,就对页面上的元素进行的操作 元素在iframe中,先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一…

Linux中给复杂命令起别名

目录 1 前言 2 操作步骤 2.1 打开.bashrc 2.2 编辑.bashrc-添加别名 2.3 使别名生效 1 前言 在linux中有些指令会比较长,为了便捷的使用它们,我们就可以采取起别名的方式,具体操作如下。 2 操作步骤 2.1 打开.bashrc 输入如下指令&a…

前端WebRTC局域网1V1视频通话

基本概念 WebRTC(Web Real-Time Communications) 网络实时通讯,它允许网络应用或者站点,在不借助中间媒介的情况下,建立点对点(Peer-to-Peer)的连接,实现视频流和音频流或者其他任…

如何在2.2.1版Aduino IDE中开发ESP32

ESP32芯片集成了WIFI和蓝牙,而且关于生态也很不错,越来越多的学习者和开发者选择此类芯片,而不像用keil开发STM32或者51一样,ESP32虽然也有官方的ESP32-IDF开发软甲,但是经过我个人的实操体验,不适合小白或…

【数据结构与算法】二叉树解题20240306

这里写目录标题 一、104. 二叉树的最大深度二、100. 相同的树三、226. 翻转二叉树四、101. 对称二叉树 一、104. 二叉树的最大深度 简单 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 1、确定递归…