当前位置: 首页 > 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;把字符…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文通过代码驱动的方式&#xff0c;系统讲解PyTorch核心概念和实战技巧&#xff0c;涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...

aardio 自动识别验证码输入

技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”&#xff0c;于是尝试整合图像识别与网页自动化技术&#xff0c;完成了这套模拟登录流程。核心思路是&#xff1a;截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...