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/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>