【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启动失败:Failed to instantiate [javax.sql.DataSource]。 最开始以为是DB版本后,需要升级驱动版本,但更新驱动版本还是不行,而且另外一个项目同样驱动同样配置可以启动。 后面发现代码读取不到yml文件中的配置信息。…...
P9234 [蓝桥杯 2023 省 A] 买瓜 题解
题目传送门 前言 说实话这题根本用不到什么折半……,今天看机房大佬写了半天加了一堆剪枝还以为很难,其实是你们想复杂了 20分钟不到从看题到代码实现 这题其实只需要可行性剪枝加排序 哦还有个后缀和 进入正题 小木棍子都听说过吧 没错就是小波上…...

ThingsBoard自定义分发节点duplicate to related
------------------------------------内容仅博主所有,订阅者请勿泄露,感谢--------------------- 1、概述 大家好,我又更新干货了,还是那句话,我绝不像某些博主“拿我格子衫”分享那些照抄官网翻译的东西来骗订阅,我觉得那是浪费时间,要搞就搞干货,今天给大家分享Th…...
vim自动更新ctags与taglist
vim的 ctags 和 taglist 在默认情况下是不进行自动更新的,这对于编写代码是非常不方便的,好在vim的脚本还是很强大的,于是在vimrc中添加如下函数: function! UpdateCtags()let curdirgetcwd()while !filereadable("./tags&qu…...
linux查看日志常用命令,动态日志命令
linux查看日志命令,动态日志命令: tail: -n是显示行号;相当于nl命令;例子如下: 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
报错信息: 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…...

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

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

干货丨警惕!14个容易导致拒稿的常见错误
Hello,大家好! 这里是壹脑云科研圈,我是喵君姐姐~ 从做研究、到写论文、再到投稿,每一步都是巨大的挑战。以下列举了一些在这些过程中可能导致拒稿的常见错误,希望能帮助大家避开。 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 我们在项目中都会使用索引,所以我们要了解索引的存储结构,今天我们就着重讲解下Mysql的索引结构存储模型,并且看下 二叉树,平衡二叉树,红黑树,B…...

理论力学专题:张量分析
张量方法的引入 自然法则与坐标无关,坐标系的引入方便分析,但也掩盖了物理本质指标符号哑标和自由标 Einstein求和约定:凡在某一项内,重复一次且仅重复一次的指标,表示对该指标在它的取值范围内求和,并称这…...
索引失效情况
左或者左右模糊匹配,like %xx,like %xx% select * from student where name like %三; 原因:B是按照索引值有序排列,只能根据前缀比较来确定数据,一旦左边是模糊的,显然无法确定到底是哪个索引值 对索引字…...

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

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

XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...

Canal环境搭建并实现和ES数据同步
作者:田超凡 日期:2025年6月7日 Canal安装,启动端口11111、8082: 安装canal-deployer服务端: https://github.com/alibaba/canal/releases/1.1.7/canal.deployer-1.1.7.tar.gz cd /opt/homebrew/etc mkdir canal…...

Java中HashMap底层原理深度解析:从数据结构到红黑树优化
一、HashMap概述与核心特性 HashMap作为Java集合框架中最常用的数据结构之一,是基于哈希表的Map接口非同步实现。它允许使用null键和null值(但只能有一个null键),并且不保证映射顺序的恒久不变。与Hashtable相比,Hash…...