最近开始学习matrixone,从源码开始编译。官网上有编译流程,感觉非常简单,步骤很少。
下面开始实践。centos7的干净虚拟机,更换yum源,安装golang这些就不再赘述。
[root@localhost matrixone]# go version
go version go1.19 linux/amd64
首先是拉取最新代码,主线分支。我拉取的时候是0.5版本。
git clone https://github.com/matrixorigin/matrixone.git
cd matrixone
然后编译依赖
make config
这一步会下载很多库,如果不翻墙可能会卡住。首先可以关闭包哈希校验,否则可能会指向一些海外服务器。然后更换go代理,下面两行分别是七牛云和阿里云的代理,可以分别尝试一下。我下载的时候感觉七牛云更快。
export GOSUMDB=off
export GOPROXY=https://goproxy.cn
export GOPROXY=https://mirrors.aliyun.com/goproxy/
完成之后再编译完整库
make build
这一步可能会遇到如下报错
这里需要修改cgo目录下的Makefile文件,找到这一行添加-std=c99选项。
CFLAGS=-I./external/decNumber -g ${OPT_LV} -Wall -Werror -std=c99
再次执行成功,全部编译完成。但是按照官网的启动方法会报错找不到文件。
需要将启动命令改成如下形式:
./mo-service -cfg ./etc/cn-standalone-test.toml
这时可以成功启动,并且控制台里会输出大量的debug日志,可以去修改成error级别,也可以暂时无视他。切换另一个窗口,使用mysql来连接数据库,密码是111
mysql -h 127.0.0.1 -P 6001 -udump -p
成功连接后看到server version: 0.5.0 MatrixOne,此时可以正常输入sql语句进行执行了。