当前位置: 首页 > news >正文

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

脚本

  • 新建一个/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 omm500# 创建目录
    mkdir /opt/omm500
    chown omm500 /opt/omm500 -R# 切换用户执行编译及安装
    chown omm500 install.sh
    chmod 777 install.sh
    su - omm500 -c "cd /opt && bash install.sh"
    
  • 新建一个/opt/install.sh文件,存入以下内容

    #!/bin/bash
    # 创建数据目录
    cd /opt/omm500
    mkdir data# 下载编译好的三方库并解压(这里下载的是Centos7.6_x86_64的版本,在7.6和7.9都能用)
    wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/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 -b 5.0.0# 配置环境变量(这里最核心的一点就是把gcc的默认路径改了,操作系统默认的版本太低)
    echo "export CODE_BASE=/opt/omm500/openGauss-server     # Path of the openGauss-server file " >> ~/.bash_profile
    echo "export BINARYLIBS=/opt/omm500/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/omm500/data" >> ~/.bash_profile
    echo "export PGPORT=5432" >> ~/.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 -b 5.0.0
    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=Sinvie@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 sioc_3_3 dbcompatibility='B'";# 开启一些mysql特性
    gsql -c "alter database sioc_3_3 set enable_set_variable_b_format = on;";
    gsql -c "alter database sioc_3_3 set dolphin.lower_case_table_names = 0;";
    gsql -c "alter database sioc_3_3 set dolphin.B_COMPATIBILITY_MODE = on;";
    # gsql -c "alter database sioc_3_3 set dolphin.sql_mode = '';";
    gsql -c "alter system set  enable_dolphin_proto= on;";
    # gsql -c "alter system set  default_database_name=sioc_3_3;";
    gsql -c "alter system set  dolphin_server_port=3306;";gs_ctl restart
    
  • 对onekey-build-og.sh 授权可执行

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

    ./onekey-build-og.sh
    

连接数据库

su - omm500
gsql -r -d sioc_3_3 -h 127.0.0.1 -U omm500 -W Sinvie@123
  • 表名大小写敏感及反引号

    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 - omm500
gsql -c "create user emt password 'Sinvie@123';"
alter user emt sysadmin;
ALTER DATABASE "sioc_3_3" OWNER TO emt;CREATE SCHEMA public AUTHORIZATION emt;ALTER SCHEMA "public" OWNER TO "emt";

navicat连接

使用emt,密码:Sinvie@123,端口号5432,postgresql协议

环境清理命令

su - omm500
gs_ctl stop
exituserdel omm500
rm -rf /opt/omm500
rm -rf /home/omm500

本文参考:https://www.darkathena.top/archives/one-key-build-opengauss-and-dolphin

相关文章:

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

脚本 新建一个/opt/onekey-build-og.sh文件,存入以下内容 #!/bin/bash # 环境 centos 7.9 4C 8G (配置越高编译越快,4G内存编译不了,磁盘大概需要14GB) # 安装一些依赖 (libaio-devel如果不卸载重装,可能会找不到io_c…...

【LeetCode - 每日一题】1073. 负二进制数相加 (2023.05.18)

1073. 负二进制数相加 题意 基数为 -2 。实现两个 0/1 数组串的加法。 解法 这是一道模拟题。 设 arr1[i] 和 arr2[i] 是数组 arr1 和 arr2 从低到高的第 i 位数。 首先回顾普通的二进制数的相加,从低位开始计算,在计算的同时维护用一个变量 carry…...

软件上线会面临哪些缺陷?这四种你一定很熟悉

上线对任何软件产品来说都是一件大事,确保一切正常并且向用户发布高质量的软件非常重要。劣质、过早、不稳定、难以使用的产品会产生大量经济损失,也可能使用户对品牌本身失去信任。一直以来,我们都说应该测试,应该将缺陷修复到可…...

html监听界面被隐藏或显示

vue相比于小程序和uni-app 显然少了两个有点用的生命周期 onShow 应用被展示 onHide 应用被隐藏 但其实这个 要做其实也很简单 JavaScript中 有对应的visibilitychange事件可以监听 我们Html参考代码如下 <!DOCTYPE html> <html lang"en"> <head>…...

Springboot启动失败 DB连不上竟然是maven配置的问题

Springboot启动失败&#xff1a;Failed to instantiate [javax.sql.DataSource]。 最开始以为是DB版本后&#xff0c;需要升级驱动版本&#xff0c;但更新驱动版本还是不行&#xff0c;而且另外一个项目同样驱动同样配置可以启动。 后面发现代码读取不到yml文件中的配置信息。…...

P9234 [蓝桥杯 2023 省 A] 买瓜 题解

题目传送门 前言 说实话这题根本用不到什么折半……&#xff0c;今天看机房大佬写了半天加了一堆剪枝还以为很难&#xff0c;其实是你们想复杂了 20分钟不到从看题到代码实现 这题其实只需要可行性剪枝加排序 哦还有个后缀和 进入正题 小木棍子都听说过吧 没错就是小波上…...

ThingsBoard自定义分发节点duplicate to related

------------------------------------内容仅博主所有,订阅者请勿泄露,感谢--------------------- 1、概述 大家好,我又更新干货了,还是那句话,我绝不像某些博主“拿我格子衫”分享那些照抄官网翻译的东西来骗订阅,我觉得那是浪费时间,要搞就搞干货,今天给大家分享Th…...

vim自动更新ctags与taglist

vim的 ctags 和 taglist 在默认情况下是不进行自动更新的&#xff0c;这对于编写代码是非常不方便的&#xff0c;好在vim的脚本还是很强大的&#xff0c;于是在vimrc中添加如下函数&#xff1a; function! UpdateCtags()let curdirgetcwd()while !filereadable("./tags&qu…...

linux查看日志常用命令,动态日志命令

linux查看日志命令&#xff0c;动态日志命令&#xff1a; tail&#xff1a; -n是显示行号&#xff1b;相当于nl命令&#xff1b;例子如下&#xff1a; tail -100f test.log 实时监控100行日志。 tail -n 10 test.log 查询日志尾部最后10行的日志。 tail -…...

分段存储管理方式

目录 一、分段存储管理方式的引入的需求: 1.方便编程 2.信息共享 3.信息保护 4.动态增长 5.动态链接 二、分段系统的基本原理 1.分段 2.段表 3.地址变换机构 4.分页与分段的主要区别 三、信息共享 四、段页式存储管理方式 1.基本原理 2.地址变换过程 分段与分页…...

将nacos从本地切换到远程服务器上时报错:客户端端未连接,Client not connected

报错信息&#xff1a; 09:34:38.438 [com.alibaba.nacos.client.Worker] ERROR com.alibaba.nacos.common.remote.client - Send request fail, request ConfigBatchListenRequest{headers{charsetUTF-8, Client-AppNameunknown, Client-RequestToken65c0fbf47282ae0a7b85178…...

系统掌握入河排污口设置论证技术、方法及报告编制框架

在短时间内较系统的掌握入河排污口设置论证技术、方法及报告编制框架&#xff0c;学习内容以城镇生活污水厂、造纸项目、石化项目、制药项目案例为线索&#xff0c;系统讲解入河排污口设置论证报告书编制过程&#xff0c;并以水质模型为手段&#xff0c;讲解水质影响预测模型的…...

服务端渲染

服务端渲染 和 前后端分离&#xff01; 渲染 什么是渲染呢 ? 其实很简单, 就是把数据反应在页面上&#xff0c;说白了, 就是利用 js 的语法, 把某些数据组装成 html 结构的样子, 放在页面上展示。 举个例子 : 1. 准备一段 html 结构 <h1>hello world</h1> <di…...

干货丨警惕!14个容易导致拒稿的常见错误

Hello,大家好&#xff01; 这里是壹脑云科研圈&#xff0c;我是喵君姐姐~ 从做研究、到写论文、再到投稿&#xff0c;每一步都是巨大的挑战。以下列举了一些在这些过程中可能导致拒稿的常见错误&#xff0c;希望能帮助大家避开。 01 格式问题 1.没有遵守投稿须知 期刊提供了…...

Web基础 ( 二 ) CSS

2.CSS 2.1.概念与基础 2.1.1.什么是CSS Cascading Style Sheets 全称层叠样式单 简称样式表。 是告诉浏览器如何来显示HTML的元素的特殊标记 2.1.2.编写方式 2.1.2.1.外部文件 在html文件的<head>中加入<link>结点来引入外部的文件 <link rel"stylesh…...

MSQL系列(一) Mysql实战-索引结构 二叉树/平衡二叉树/红黑树/BTree/B+Tree

Mysql实战-索引结构 二叉树/平衡二叉树/红黑树/BTree/BTree 我们在项目中都会使用索引&#xff0c;所以我们要了解索引的存储结构&#xff0c;今天我们就着重讲解下Mysql的索引结构存储模型&#xff0c;并且看下 二叉树&#xff0c;平衡二叉树&#xff0c;红黑树&#xff0c;B…...

理论力学专题:张量分析

张量方法的引入 自然法则与坐标无关&#xff0c;坐标系的引入方便分析&#xff0c;但也掩盖了物理本质指标符号哑标和自由标 Einstein求和约定&#xff1a;凡在某一项内&#xff0c;重复一次且仅重复一次的指标&#xff0c;表示对该指标在它的取值范围内求和&#xff0c;并称这…...

索引失效情况

左或者左右模糊匹配&#xff0c;like %xx&#xff0c;like %xx% select * from student where name like %三; 原因&#xff1a;B是按照索引值有序排列&#xff0c;只能根据前缀比较来确定数据&#xff0c;一旦左边是模糊的&#xff0c;显然无法确定到底是哪个索引值 对索引字…...

pv操作练习题

信号量解决五个哲学家吃通心面问题 题型一 有五个哲学家围坐在一圆桌旁&#xff0c;桌中央有盘通心面&#xff0c;每人面前有一只空盘于&#xff0c;每两人之间放一把叉子。每个哲学家思考、饥饿、然后吃通心面。为了吃面&#xff0c;每个哲学家必须获得两把叉子&#xff0c;…...

【小菜鸡刷题记】--字符串篇

【小菜鸡刷题记】&#xff1a;字符串 剑指 Offer 05. 替换空格剑指 Offer 58 - II.左旋转字符串剑指 Offer 20.表示数值的字符串剑指 Offer 67. 把字符串转换成整数 特此声明&#xff1a;题目均来自于力扣 剑指 Offer 05. 替换空格 题目链接 请实现一个函数&#xff0c;把字符…...

关于无法下载Qt离线安装包的说明

不知道出于什么原因考虑&#xff0c;Qt官方目前不提供离线的安装包下载&#xff0c;意味着网上各种文章提供的各种下载地址都失效了&#xff0c;会提示Download from your IP address is not allowed&#xff0c;当然目前可以在线安装&#xff0c;但是据说只提供了从5.15开始的…...

有铜半孔工艺的制造难点与工艺优化

技术难点剖析 有铜半孔工艺在制造过程中面临多重挑战&#xff0c;主要集中在材料加工精度、孔壁完整性及良率控制三个方面&#xff1a; 铜层翘起与毛刺残留 半孔成型时&#xff0c;铣刀高速切割可能导致孔壁铜层被拉扯&#xff0c;产生翘起或残留铜屑&#xff0c;影响导电性能…...

Python基础 | jupyter工具的安装与基本使用

@[TOC](Python基础 | jupyter工具的安装与基本使用 一、jupyter介绍1.1 jupyter简介2.2 jupyter主要特点二、实践环境介绍三、安装Python33.1 更新软件源3.2 安装Python33.3 查看版本3.4 更换pip源四、安装jupyter工具4.1 安装jupyter4.2 启动jupyter4.3 访问jupyter服务五、测…...

【Deepseek 学网络互联】跨节点通信global 和节点内通信CLAN保序

Clan模式下的源端保序与Global类似&#xff0c;目的端保序则退化成通道保序&#xff0c;此时仅支持网络单路径保序。”这里的通道保序怎么理解&#xff1f; 用户可能正在阅读某种硬件架构文档&#xff08;比如NVIDIA的NVLink或InfiniBand规范&#xff09;&#xff0c;因为"…...

shell之通配符及正则表达式,grep参数

通配符与正则表达式 通配符&#xff08;Globbing&#xff09; 通配符是由 Shell 处理的特殊字符&#xff0c;用于路径或文件名匹配。当 Shell 在命令参数中遇到通配符时&#xff0c;会将其扩展为匹配的文件路径&#xff1b;若没有匹配项&#xff0c;则作为普通字符传递给命令…...

冷库耗电高的一种重要原因分析,以及一种降低冷库电费≥20%的方法

1.冷库耗电高的原因分析 1.1化霜不及时 固定周期化霜&#xff1a;传统定时化霜模式&#xff08;如每日2次&#xff09;未考虑实际结霜量&#xff0c;导致无效化霜&#xff08;霜层薄时仍启动化霜&#xff09;&#xff0c;浪费大量电能。 化霜时间过长&#xff1a;化霜加热器…...

IO Vs NIO

一、IO(传统阻塞式) 全称‌&#xff1a;Input/Output(输入/输出) 定义‌&#xff1a;Java 1.0 引入的基础 I/O 模型&#xff0c;基于流&#xff08;Stream&#xff09;的同步阻塞操作&#xff0c;线程在读写数据时会阻塞直到操作完成。 二、NIO(新式非阻塞式) ‌全…...

字节跳动BAGEL-7B-MoT模型开源:多模态AI技术的新范式与行业涟漪

在人工智能领域&#xff0c;技术开源与商业化落地的平衡始终是核心议题。2025年5月26日&#xff0c;字节跳动发布开源多模态AI模型BAGEL-7B-MoT&#xff0c;凭借其混合架构设计与跨模态处理能力&#xff0c;在图像生成、视觉理解等任务中展现出与GPT-4o等闭源模型抗衡的实力。这…...

机器学习第二十七讲:Kaggle → 参加机器学习界的奥林匹克

机器学习第二十七讲&#xff1a;Kaggle → 参加机器学习界的奥林匹克 资料取自《零基础学机器学习》。 查看总目录&#xff1a;学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章&#xff1a;DeepSeek R1本地与线上满血版部署&#xff1a;超详细手把手指南 Kaggle详解…...

深度学习————注意力机制模块

关于注意力机制我自己的一点理解&#xff1a;建立各个维度数据之间的关系&#xff0c;就是对已经处理为特征图的数据&#xff0c;将其他影响因素去除&#xff08;比如通道注意力&#xff0c;就将空间部分的影响因素消除或者减到极小&#xff09;再对特征图进行以此特征提取 以此…...