MatrixOne Linux 编译文档

# MatrixOne Linux 编译文档

## 编译环境

| 硬件环境                  | 操作系统                            | 内存 | CPU  | 磁盘 |

| -------------------------- | ------------------------------------ | ---- | ---- | ---- |

| Windows环境下的Linux虚拟机 | Linux version 3.10.0-1160.el7.x86_64 | 4G  | 4C  | 25G  |

## 环境准备

### 安装GO环境

#### 下载

````shell

# 下载地址

https://studygolang.com/dl

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

````

选择对应版本下载,如我这里下载的是 [go1.19.linux-amd64.tar.gz](https://studygolang.com/dl/golang/go1.19.linux-amd64.tar.gz)

#### 安装GO环境

* 创建安装目录

  ````shell

  mkdir -p /home/go && cd /home/go

  ````

* 解压

  ````shell

  tar -C /home/go -zxvf go1.19.linux-amd64.tar.gz

  ````

* 配置环境变量

  ````shell

  vi /etc/profile

  # 增加以下内容

  # 在/etc/profile最后一行添加

  export GOROOT=/usr/local/go

  export PATH=$PATH:$GOROOT/bin


  # 保存退出后,source一下

  source /etc/profile

  ````

* 检查GO环境

  ````shell

  # 执行 go命令

  go version

  # 能出现如下的go的版本即可

  go version go1.19 linux/amd64

  ````

## 获取源码

* 创建源码编译目录

  ````shell

  mkdir -p /home/matrixone && cd /home/matrixone

  ````

* 获取源码

  ````shell

  # git clone

  git clone https://github.com/matrixorigin/matrixone.git

  # 切换分支

  git checkout 0.5.1 (可选)

  # 进入源码目录

  cd ./matrixone

  ````

## 编译源码并启动

### 编译源码(在线编译)

````shell

# 需要网络环境支持

# 配置go的依赖下载加速

go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct

#编译

make config

make build

````

* 可能会遇到的问题

  * 在执行make build时 :gcc编译标准问题([PR : 4868](https://github.com/matrixorigin/matrixone/pull/4868)))

    ````shell

    ‘for’ loop initial declarations are only allowed in C99 mode

    ````

    * 解决方案

      在cho的Makefile中加入编译标准

      ````shell

      # 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``下,然后执行:

  ````shell

  go env -w GO111MODULE=off 关闭

  ````

  参数解释:

  ````shell

  GO111MODULE=off 无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。

  GO111MODULE=on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。

  GO111MODULE=auto 在 $GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支持

  ````

### 启动服务

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

````shell

./mo-service -cfg ./etc/cn-standalone-test.toml

````

## 连接MO服务

### 安装mysql client

* 卸载mariadb

  ````shell

  # 查询有无相关依赖

  rpm -qa |grep mariadb

  # 卸载相关依赖

  rpm -e xxx

  ````

* 安装mysql-client

  ````shell

  # 下载以下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连接

````shell

mysql -h 192.168.110.170 -P6001 -uroot -p

````

* 连接成功后

  ````sql

  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 Linux 编译文档)