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

在部署MatrixOne前,咱们可能会比拟纠结应用哪个版本适合,MatrixOne在github上有各个版本的Releases,蕴含源码包和实用于Linux零碎和MAC零碎的二进制文件,但如果咱们须要体验main分支上最新的性能的时候,咱们能够间接应用源码编译,来获取到最新代码的二进制部署文件。本文源码编译次要是针对利用场景最为宽泛的Linux零碎进行的源码编译。

编译环境

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

环境筹备

装置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/goexport 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

编译源码并启动

编译源码(在线编译)

# 装置gcc相干的依赖yum install -y gcc# 须要网络环境反对# 配置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.rpmhttps://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-5.7.35-1.el7.x86_64.rpmhttps://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-client-5.7.35-1.el7.x86_64.rpm# 装置rpmrpm -ivh mysql-community-common-5.7.35-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-5.7.35-1.el7.x86_64.rpmrpm -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 1001Server version: 0.5.0 MatrixOneCopyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>