MatrixOne从入门到实践——源码编译

​ 在部署MatrixOne前,我们可能会比较纠结使用哪个版本合适,MatrixOne在github上有各个版本的Releases,包含源码包和适用于Linux系统和MAC系统的二进制文件,但如果我们需要体验main分支上最新的功能的时候,我们可以直接使用源码编译,来获取到最新代码的二进制部署文件。本文源码编译主要是针对应用场景最为广泛的Linux系统进行的源码编译。

编译环境

硬件环境 操作系统 内存 CPU 磁盘
Windows环境下的Linux虚拟机 Linux version 3.10.0-1160.el7.x86_64 4G 4C 25G

环境准备

安装GO环境

下载

# 下载地址
https://studygolang.com/dl
# 这里将go安装至 /home/go目录下,可以在上面网址选择对应版本的安装包之后,上传至安装目录

选择对应版本下载,如我这里下载的是 go1.19.linux-amd64.tar.gz

安装GO环境

  • 创建安装目录

    mkdir -p /home/go && cd /home/go
  • 解压

    tar -C /home/go -zxvf go1.19.linux-amd64.tar.gz
  • 配置环境变量

    vi /etc/profile
    # 增加以下内容
    # 在/etc/profile最后一行添加
    export GOROOT=/usr/local/go
    export PATH=$PATH:$GOROOT/bin # 保存退出后,source一下
    source /etc/profile
  • 检查GO环境

    # 执行 go命令
    go version
    # 能出现如下的go的版本即可
    go version go1.19 linux/amd64

获取源码

  • 创建源码编译目录

    mkdir -p /home/matrixone && cd /home/matrixone
  • 获取源码

    # git clone
    git clone https://github.com/matrixorigin/matrixone.git
    # 切换分支
    git checkout 0.5.1 (可选)
    # 进入源码目录
    cd ./matrixone

编译源码并启动

编译源码(在线编译)

# 需要网络环境支持
# 配置go的依赖下载加速
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
#编译
make config
make build
  • 可能会遇到的问题

    • 在执行make build时 :gcc编译标准问题(PR : 4868) (已解决)

      ‘for’ loop initial declarations are only allowed in C99 mode
      • 解决方案

        在cgo的Makefile中加入编译标准

        # vi ./cgo/Makefile
        # 将原本的
        CFLAGS=-I./external/decNumber -g ${OPT_LV} -Wall -Werror
        # 修改为
        CFLAGS=-std=c99 -I./external/decNumber -g ${OPT_LV} -Wall -Werror

编译源码(离线编译)

  • 找一个有网络环境的机器,执行上述步骤,可以不执行make build,依赖下载完成后,将 $GOPATH/pkg/mod 中的依赖项,复制到没有网络环境机器的 $GOPATH/pkg/mod下,然后执行:

    go env -w GO111MODULE=off 关闭

    参数解释:

    GO111MODULE=off 无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。
    GO111MODULE=on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。
    GO111MODULE=auto 在 $GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支持

启动服务

默认配置启动

编译完成后,会在matrixone目录下生成二进制文件:mo-service,此时启动服务即可

./mo-service -cfg ./etc/cn-standalone-test.toml
# 如需后台启动可以使用,启动后的运行日志会输出到当前目录下名为nohup.out的文件中,也可自己选择重定向输出
nohup ./mo-service -cfg ./etc/cn-standalone-test.toml &

自定义配置启动

如果启动有特殊需求,比如想自定义密码,端口等等信息,可以编辑system_vars_config.toml文件,修改对应参数即可。

该功能会在参考手册章节的系统配置详细讲解

连接MO服务

安装mysql client

  • 卸载mariadb

    # 查询有无相关依赖
    rpm -qa |grep mariadb
    # 卸载相关依赖
    rpm -e xxx
  • 安装mysql-client

    # 下载以下rpm包
    https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-common-5.7.35-1.el7.x86_64.rpm https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-5.7.35-1.el7.x86_64.rpm https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-client-5.7.35-1.el7.x86_64.rpm
    # 安装rpm
    rpm -ivh mysql-community-common-5.7.35-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.35-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.35-1.el7.x86_64.rpm

使用mysql-client连接

 mysql -h 192.168.110.170 -P6001 -uroot -p
  • 连接成功后

    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 1001
    Server version: 0.5.0 MatrixOne Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

MatrixOne从入门到实践02——源码编译的更多相关文章

  1. MatrixOne从入门到实践03——部署MatrixOne

    MatrixOne从入门到实践--部署MatrixOne 前两章节我们简单介绍了MatrixOne和源码编译了MatrixOne.本章节将使用不同的部署方式,来部署MatrixOne的服务. 注意:不 ...

  2. MatrixOne从入门到实践08——SSB性能测试

    MatrixOne从入门到实践--SSB性能测试 SSB 星型模式基准测试是 OLAP 数据库性能测试的常用场景,通过本篇教程,您可以了解到如何在 MatrixOne 中实现 SSB 测试. 测试环境 ...

  3. MySQL数据库企业级应用实践(多实例源码编译)

    MySQL数据库企业级应用实践(多实例源码编译) 链接:https://pan.baidu.com/s/1ANGg3Kd_28BzQrA5ya17fQ 提取码:ekpy 复制这段内容后打开百度网盘手机 ...

  4. MySQL数据库的二进制安装、源码编译和基础入门操作

    一.MySQL安装 (1)安装方式: 1 .程序包yum安装 优点:安装快,简单 缺点:定死了各个文件的地方,需要修改里边的相关配置文件,很麻烦 2 .二进制格式的程序包:展开至特定路径,并经过简单配 ...

  5. 源码编译安装 MySQL 5.5.x 实践

    1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...

  6. 源码编译安装 MySQL 5.5.x 实践(转)

    1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...

  7. 小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_38、源码编译安装Redis4.x

    笔记 2.源码编译安装Redis4.x     简介:使用源码安装Redis4.x和配置外网访问 1.快速安装  https://redis.io/download#installation      ...

  8. Dubbo入门到精通学习笔记(十九):MySQL源码编译安装、MySQL主从复制的配置

    文章目录 MySQL 源码编译安装(CentOS-6.6+MySQL-5.6) 一.服务器配置: 二.源码安装 MySQL5.6.26: MySQL主从复制的配置 环境 依赖课程 MySQL 主从复制 ...

  9. Linux 源码编译Python 3.6

    Linux 源码编译Python 3.6 1.操作系统以及版本显示 # uname -sr Linux 3.10.0-514.el7.x86_64 # uname -sr Linux 3.10.0-5 ...

随机推荐

  1. 从零开始Blazor Server(1)--项目搭建

    项目介绍 本次项目准备搭建一个使用Furion框架,Blazor的UI使用BootstrapBlazor.数据库ORM使用Freesql的后台管理系统. 目前的规划是实现简单的注册,登录.增加管理员跟 ...

  2. 哈希-hash

    一. 概念 1.引例 有线性表(1,75,324,43,1353,90,46,-  ) 目的:查找值为90的元素 常见做法: 1.通过一维数组进行遍历查找 (依次比较)( O(n) ) 2.如果关键字 ...

  3. Spark: Cluster Computing with Working Sets

    本文是对spark作者早期论文<Spark: Cluster Computing with Working Sets>做的翻译(谷歌翻译),文章比较理论,阅读起来稍微有些吃力,但读完之后总 ...

  4. NFS 服务器配置(Ubuntu)

    # NFS 服务器配置(Ubuntu 20.0) # 1.配置网络环境 # NFS 的客户端和服务端必须在同一局域网 # 2.在服务器上安装nfs sudo apt-get install nfs-c ...

  5. 5.6 NOI模拟

    \(5.6\ NOI\)模拟 明天就母亲节了,给家里打了个电话(\(lj\ hsez\)断我电话的电,在宿舍打不了,只能用教练手机打了) 其实我不是很能看到自己的\(future,\)甚至看不到高三的 ...

  6. 任意N阶幻方算法实现

    算法原理请参考:https://www.zhihu.com/question/23531676 先定义一些通用的函数,比如创建空幻方,删除幻方,打印幻方. 创建幻方 int **NewMagicS(i ...

  7. 利用 SonarScanner 静态扫描 Rainbond 上的 Maven 项目

    对代码进行静态扫描是一种非常常见的代码质量保证手段,这种扫描不仅仅可以检查到代码中的缺陷,应用各种业界最佳实践,也可以检查出安全方面的漏洞,给予项目代码全方位的提升.在各种代码扫描方案之中,Sonar ...

  8. 大数据工作流任务调度--有向无环图(DAG)之拓扑排序

    点击上方蓝字关注DolphinScheduler(海豚调度) |作者:代立冬 |编辑:闫利帅 回顾基础知识: 图的遍历 图的遍历是指从图中的某一个顶点出发,按照某种搜索方法沿着图中的边对图中的所有顶点 ...

  9. ASP.NET Core依赖注入系统学习教程:关于服务注册使用到的方法

    在.NET Core的依赖注入框架中,服务注册的信息将会被封装成ServiceDescriptor对象,而这些对象都会存储在IServiceCollection接口类型表示的集合中,另外,IServi ...

  10. Luogu P1903 [国家集训队]数颜色 / 维护队列 (带修莫队)

    #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> ...