【openGauss】一键编译openGauss3.1+dolphin,体验新增的mysql兼容特性

news2024/11/26 5:47:57

前言

前两天写了一篇openGauss3.1关于mysql的相关特性,但由于openGauss官网提供下载的版本还是9月30号第一次发布的版本,很多特性都还没合入,所以不少爱好者不能轻易体验到。
虽然openGauss已经提供了“一键式编译脚本”,但是还是得做一些前提准备,对于一些不熟悉在linux编译程序的人来说,还是有些门槛。
于是我整理了2个脚本,只要提前准备好一个能联网的centos7.9_x86_64,即可实现真正的一键式编译并自动安装及启动数据库,顺便创建好了一个B库。

脚本

  • 新建一个/opt/onekey-build-og.sh文件,存入以下内容
#!/bin/bash
# 环境 centos 7.9 4C 8G  (配置越高编译越快,4G内存编译不了,磁盘大概需要14GB)
# 安装一些依赖 (libaio-devel如果不卸载重装,可能会找不到io_context_t)
yum remove libaio-devel libaio -y
yum install -y git gmp  gmp-devel  mpfr  mpfr-devel  libmpc  libmpc-devel libaio libaio-devel flex bison ncurese-devel glibc-devel patch rehat-lsb-core readline-devel perl gcc gcc-c++

# 新建一个用户
useradd omm310

# 创建目录
mkdir /opt/omm310
chown omm310 /opt/omm310 -R

# 切换用户执行编译及安装
chown omm310 install.sh
chmod 777 install.sh
su - omm310 -c "cd /opt && bash install.sh"
  • 新建一个/opt/install.sh文件,存入以下内容
#!/bin/bash
# 创建数据目录
cd /opt/omm310
mkdir data

# 下载编译好的三方库并解压(这里下载的是Centos7.6_x86_64的版本,在7.6和7.9都能用)
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/latest/binarylibs/openGauss-third_party_binarylibs_Centos7.6_x86_64.tar.gz
tar -xvf openGauss-third_party_binarylibs_Centos7.6_x86_64.tar.gz

# 克隆数据库源码仓
git clone https://gitee.com/opengauss/openGauss-server

# 配置环境变量(这里最核心的一点就是把gcc的默认路径改了,操作系统默认的版本太低)
echo "export CODE_BASE=/opt/omm310/openGauss-server     # Path of the openGauss-server file " >> ~/.bash_profile
echo "export BINARYLIBS=/opt/omm310/openGauss-third_party_binarylibs_Centos7.6_x86_64    # Path of the binarylibs file " >> ~/.bash_profile
echo "export GAUSSHOME=\$CODE_BASE/dest/ " >> ~/.bash_profile
echo "export GCC_PATH=\$BINARYLIBS/buildtools/gcc7.3/ " >> ~/.bash_profile
echo "export CC=\$GCC_PATH/gcc/bin/gcc " >> ~/.bash_profile
echo "export CXX=\$GCC_PATH/gcc/bin/g++ " >> ~/.bash_profile
echo "export LD_LIBRARY_PATH=\$GAUSSHOME/lib:\$GCC_PATH/gcc/lib64:\$GCC_PATH/isl/lib:\$GCC_PATH/mpc/lib/:\$GCC_PATH/mpfr/lib/:\$GCC_PATH/gmp/lib/:\$LD_LIBRARY_PATH " >> ~/.bash_profile
echo "export PATH=\$GAUSSHOME/bin:\$GCC_PATH/gcc/bin:\$PATH " >> ~/.bash_profile
echo "export PGDATA=/opt/omm310/data" >> ~/.bash_profile
echo "export PGPORT=26000" >> ~/.bash_profile
echo "export PGDATABASE=postgres" >> ~/.bash_profile

# 加载环境变量
source ~/.bash_profile

# 进入源码目录
cd $CODE_BASE

# 编译server (这里就是openGauss提供的一键式编译脚本)
sh build.sh -m release -3rd $BINARYLIBS

# 文件夹改名 (原文档说会生成dest目录,但实际上是生成到了mppdb_temp_install,所以改个名)
mv mppdb_temp_install dest 

# 克隆插件仓,并复制到server源码目录内(必须单独编译,因为如果先放到server源码内,server都会编译不成功)
git clone https://gitee.com/opengauss/Plugin
cp Plugin/contrib/*  $CODE_BASE/contrib/ -r

# 编译dolphin插件
cd contrib/dolphin
make install

# 复制插件到编译好的server目录
cp *.so $GAUSSHOME/lib/postgresql/ 
cp *.control $GAUSSHOME/share/postgresql/extension/ 
cp *.sql $GAUSSHOME/share/postgresql/extension/ 

# 初始化数据库
gs_initdb --nodename=primary --pwpasswd=Enmo@123

# 配置一些数据库参数
echo "port=$PGPORT" >> $PGDATA/postgresql.conf
echo "listen_addresses = '0.0.0.0'" >> $PGDATA/postgresql.conf
echo "password_encryption_type = 0" >> $PGDATA/postgresql.conf
echo "log_directory = 'pg_log'" >> $PGDATA/postgresql.conf
echo "remote_read_mode=non_authentication" >> $PGDATA/postgresql.conf
echo "host all all 0.0.0.0/0 md5" >> $PGDATA/pg_hba.conf

# 启动数据库
gs_ctl start 

# 连接数据库并创建一个B库
gsql -c "create database og_dolphin dbcompatibility='B'";

# 开启一些mysql特性
gsql -c "alter database og_dolphin set enable_set_variable_b_format = on;";
gsql -c "alter database og_dolphin set dolphin.lower_case_table_names = 0;";
gsql -c "alter database og_dolphin set dolphin.B_COMPATIBILITY_MODE = on;";
gsql -c "alter system set  enable_dolphin_proto= on;";
gsql -c "alter system set  dolphin_server_port=3307;";

gs_ctl restart

  • 对onekey-build-og.sh 授权可执行
chmod 777 onekey-build-og.sh
  • 然后执行这个sh文件(4C 8G 100M宽带 大约30分钟)
./onekey-build-og.sh

连接数据库

su - omm310
gsql -r -d og_dolphin

测试

  • 表名大小写敏感及反引号
create table Test_123 (`a` int, `B` int ,"Ab" int);
\d+ "Test_123"
select * from Test_123;--不会报错
select * from test_123;--会报错
  • mysql客户端连接
    如果机器上没有安装mysql客户端,则先安装一下
yum -y install http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
yum search mysql
yum install -y mysql-community-client.x86_64

创建一个新的数据库用户

su - omm310
gsql -c "create user test_user password 'openGauss123';"

用mysql客户端连接openGauss,不过目前在mysql命令行客户端上无法返回执行结果,使用其他工具测试正常,比如mogeaver

mysql -P 3307 -u test_user -popenGauss123 -h 127.0.0.1 -D og_dolphin

在这里插入图片描述
在这里插入图片描述

环境清理命令

如果编译出错,或者源码有更新,想重新编译,可以执行下面的命令清理环境,会把之前的源码和数据库程序、数据都删掉

su - omm
gs_ctl stop
exit

userdel omm310
rm -rf /opt/omm310
rm -rf /home/omm310

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

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

相关文章

Linux系统下的常用文件目录指令

文件目录指令 pwd (Print Working Directory):显示当前工作目录的绝对路泾 ls (list) 基本语法:ls[选项][目录或是文件]常用选项 -a:显示当前目录所有的文件和目录,包括隐藏的。 -l:以列表的方式显示信息 cd (change directory) :切换到指定目录 基本语法:cd参数理…

5G无线技术基础自学系列 | 5G网络速率问题分析

素材来源:《5G无线网络规划与优化》 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 前面介绍了接入性和移动性两类问题的处…

node.js+uni计算机毕设项目湖南工商大学财务信息查询小程序(程序+小程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等…

计网第三章.数据链路层—封装成帧、差错检测

以下是湖科大计算机网络公开课的笔记 1 . 数据链路层概述 1.1 一些概念 链路(Link)就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点 数据链路(Data Link) 是指实现通信协议的硬件和软件加到…

【自然语言处理】最大熵马尔可夫模型

有任何的书写错误、排版错误、概念错误等,希望大家包含指正。 由于这部分的参考资料比较少,网上大部分资料重复且不完整,对于一些关键计算没有推导,所以这里我主要讨论几篇论文和讲义。但是这些论文和讲义之间也有些许差别&#…

算法CPP时间复杂度

观察数据生成器可以发现对于每次操作均有 。 考虑将这些三元组想象成空间直角坐标系中 为对顶点的长方体。 将操作分成两部分,一部分是对 轴同时操作的,可以一开始就用前缀 统计完,将长方体变 成一个底面为阶梯状的直棱柱。另一部分是对 或…

【网络工程】9、实操-万达酒店综合项目(三)

接上篇《8、实操-万达酒店综合项目(三)》 之前我们按照项目要求进行模拟拓扑的构建实操,完成了办公区部分的网络配置,本篇我们来继续完成其他区域的网络配置。 一、总体架构情况 按照之前项目需求的拓扑图: 我们已经…

爱了爱了,Spring Cloud Alibaba内部微服务架构笔记真的太牛了

现如今微服务架构十分流行,而采用微服务构建系统也会带来更清晰的业务划分和可扩展性。同时,支持微服务的技术栈也是多种多样的,本文主要讲述我们为什么选择Spring Cloud和它的技术概要。 为什么微服务架构需要Spring Cloud 简单来说&#x…

【C++初阶】list的模拟实现

文章目录list的介绍list的模拟实现成员变量Member functionsconstructordestructoroperatorIterators正向迭代器反向迭代器beginendrbeginrendModifierspush_frontpop_frontpush_backpop_backinserteraseclear完整版代码list.hreverse_iterator.htest.cpplist的介绍 list是STL…

Selenium自动化测试环境搭建及问题

一、前言 目标:环境搭建及测试 主要问题:浏览器闪退,路径不明确,语法弃用 二、环境搭建(自带python3.9以上) 2.1.1、下载谷歌浏览器驱动 https://registry.npmmirror.com/binary.html?pathchromedriver/&…

数据结构---A星寻路算法

A星寻路算法第一步第二步第三步第四步JAVA实现用于寻找有效路径的算法。定义俩个集合 OpenList:可到达的格子 CloseList:已到达的格子 每一个格子都具有F、G、H这3个属性 G:从起点走到当前格子的成本,也就是已经花费了多少步。H&a…

生产级部署 Python 脚本,崩溃可自启

今天介绍一个生产级的流程管理工具 PM2,通常我们说到 PM2 的时候,都是在说如何部署 Node.js 程序,但是实际上 PM2 很强大,不仅仅可以用来管理 Node.js,它还可以用来管理 Python、PHP、Ruby、perl 等等。 这里就以 Pyt…

看了下华为工资,我不加班了

周五快下班,我本来是想继续好好上班的。那时候是晚上8点左右,跟我一个华为的朋友聊天,聊完之后,我气得把电脑合上,拿上花了7万巨款买的车钥匙,头也不回的走到电梯口,按下了下楼的电梯按钮。-事情…

项目集成MybatisPlus

目录 1.MyBatisPlus介绍 1.1.为什么需要 1.2.MyBatisPlus简介 1.3.MybatisPlus特点 2.项目集成MybatisPlus 2.1.导入依赖 2.2.创建配置 2.3.代码生成主类GenteratorCode 2.4.Controller,Query模板 2.5.生成代码 2.6最终效果 1.MyBatisPlus介绍 1.1.为什么…

SQL优化篇:如何成为一位写优质SQL语句的绝顶高手

(Structured Query Language)标准结构化查询语言简称SQL,编写SQL语句是每位后端开发日常职责中,接触最多的一项工作,SQL是关系型数据库诞生的产物,无论是什么数据库,MySQL、Oracle、SQL Server、DB2、PgSQL....&#x…

JSP ssh网上商品拍卖系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 JSP ssh网上商品拍卖系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S 模式开发。开发环境为TOMCAT7.0…

个人收款的实现方案

最近出于个人需要折腾了一套微信免签支付的个人系统,下面介绍一下整体的一个实现方案 由于微信本身不提供免签的支付api,因此个人若想要实现免签支付,那么只能通过监听微信收款通知来实现了,因此整个系统的实现部分分为 收款服务端和监听客户端来实现 收款服务端实现 整个…

【nowcoder】笔试强训Day5

目录 一、单选题 二、多选题 三、编程题 3.1统计回文 3.2连续最大和 一、单选题 1.下面的程序 编译运行后,在屏幕上显示的结果是() public class Test {public static void main(String args[]) {int x, y;x 5 >> 2;y x >&…

docker入门以及常见的命令

目录 1. 什么是docker 2. docker的核心组件 3. docker的安装 3.1 安装的先决条件 3.2.1 ubuntu安装docker 3.2.2 CentOS安装docker 3.3 配置镜像加速器 4. 镜像常用操作 4.1 搜索镜像 4.2 镜像下载 4.3 查看宿主机中的镜像 4.3 删除镜像 5. 容器常用命令 5.1 运行…

#Z1243. 完美数

一,题目描述 一个数是完美的,仅当它等于它的因数中比它小的所有数之和。 例如:28124714,所以 28 是完美的。 由此我们可以定义一个数的不完美值 F(N),代表 N和比 N 小的所有 N 的因数之和的差的绝对值。 例如&…