Deployment Frequently Asked Questions
Environmentally relevant
What OS version is required to deploy MatrixOne?
Linux OS |
Version |
Debian |
11.0 or later |
Ubuntu LTS |
20.04 or later |
Red Hat Enterprise Linux |
9.0 or later releases |
Oracle Enterprise Linux |
9.0 or later releases |
CentOS |
7.0 or later releases |
For Linux systems with lower kernels, it is recommended to deploy with a binary package built on musl libc if you are using a binary package installation deployment, as detailed in the recommended installation environment chapter in the Standalone Deployment Matrixone overview.
macOS |
版本 |
macOS |
Monterey 12.3 or later |
OS |
OS Version |
CPU |
Memory |
OpenCloudOS |
v8.0 / v9.0 |
x86 CPU;4 Core |
16 GB |
openEuler |
20.03 |
x86 / ARM CPU;4 Core |
16 GB |
TencentOS Server |
v2.4 / v3.1 |
x86 CPU;4 Core |
16 GB |
UOS |
V20 |
ARM CPU;4 Core |
16 GB |
KylinOS |
V10 |
ARM CPU;4 Core |
16 GB |
KylinSEC |
v3.4 |
x86 / ARM CPU;4 Core |
16 GB |
Can I use MatrixOne properly under Red Hat systems like CentOS 7?
MatrixOne does not have strict operating system requirements and supports use under CentOS 7, but CentOS 7 was discontinued at the end of June 24 and a newer version of the operating system is recommended.
Does MatrixOne support deployment in homegrown environments?
For the domestic operating system and chip, the chip we have adapted to Pang Peng and Haiguang, the operating system has adapted to Galactic Kirin, Euler, Kirin Shinan.
Where can I deploy MatrixOne?
MatrixOne can be deployed on premise, in a public cloud, in a private cloud, or on kubernetes.
Does MatrixOne support distributed deployment on Aliyun ecs servers?
Currently K8S based on ECS or Aliyun ACK is required for distributed deployment.
Do cluster deployments only support K8s? Can you physically distribute local deployment?
If there is no k8s and minio environment ahead of time. Our installation tools come with k8s and minio and can also be deployed on a physical machine with one click.
MatrixOne does not currently support a non-k8s version of the master-slave configuration and will do so later.
Can a production environment only be deployed in k8s mode?
Yes, for distributed stability and scalability, we recommend that production systems be deployed with k8s. If you don’t have k8s out of the box, you can deploy with managed k8s to reduce complexity.
Error reporting related
When I finish installing the MySQL client, opening a terminal and running mysql generates an error command not found: mysql, how do i fix this?
This error report is the reason the environment variable is not set. Open a new terminal and execute the following command:
When I install and choose to install build MatrixOne from source, I get the following error or build failure indication. How do I continue?
Error: Get "https://proxy.golang.org/...": dial tcp 142.251.43.17:443: i/o timeout
Because MatrixOne requires many GO libraries as dependencies, it downloads the GO libraries at the same time as it builds. The error reported above is a download timeout error, mainly due to network issues.
If you’re using a mainland Chinese network, you need to set up your GO environment to a Chinese mirror site to speed up the download of the GO library.
If you check your GO environment via go env, you may see GOPROXY="https://proxy.golang.org,direct", then you need to set the following:
go env -w GOPROXY=https://goproxy.cn,direct
Once setup is complete, make build should be completed soon.
When I test MatrixOne via MO-Tester, how do I resolve the too many open files error I generate?
To test MatrixOne, MO-Tester quickly opens and closes many SQL files, and soon reaches the maximum open file limit for Linux and MacOS systems, which is what causes the too many open files error.
Once setup is complete, there will be no too many open files error.
My PC is an M1 chip and when I run an SSB test I find that I can’t compile successfully ssb-dbgen
PCs with hardware configured as M1 chips also need to be configured as follows before compiling ssb-dbgen:
Download and install GCC11.
Enter the command to confirm that gcc-11 succeeded:
gcc-11 -v
The following results indicate success:
Using built-in specs.
COLLECT_GCC=gcc-11
COLLECT_LTO_WRAPPER=/opt/homebrew/Cellar/gcc@11/11.3.0/bin/../libexec/gcc/aarch64-apple-darwin21/11/lto-wrapper
Target: aarch64-apple-darwin21
Configured with: ../configure --prefix=/opt/homebrew/opt/gcc@11 --libdir=/opt/homebrew/opt/gcc@11/lib/gcc/11 --disable-nls --enable-checking=release --with-gcc-major-version-only --enable-languages=c,c++,objc,obj-c++,fortran --program-suffix=-11 --with-gmp=/opt/homebrew/opt/gmp --with-mpfr=/opt/homebrew/opt/mpfr --with-mpc=/opt/homebrew/opt/libmpc --with-isl=/opt/homebrew/opt/isl --with-zstd=/opt/homebrew/opt/zstd --with-pkgversion='Homebrew GCC 11.3.0' --with-bugurl=https://github.com/Homebrew/homebrew-core/issues --build=aarch64-apple-darwin21 --with-system-zlib --with-sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.3.0 (Homebrew GCC 11.3.0)
Manually modify the bm_utils.c configuration file in the ssb-dbgen directory:
Modify #include <malloc.h> on line 41 to #include <sys/malloc.h>
Change open(fullpath, ((*mode == 'r')?O_RDONLY:O_WRONLY)|O_CREAT|O_LARGEFILE,0644); in line 398 to open(fullpath, ((*mode == 'r')?O_RDONLY:O_WRONLY)|O_CREAT,0644); to open(fullpath, ((*mode == 'r')? WRONLY)|O_CREAT,0644);
Manually modify the varsub.c configuration file in the ssb-dbgen directory:
Manually modify the makefile configuration file in the ssb-dbgen directory:
Go to the ssb-dbgen directory again and compile:
View the ssb-dbgen directory and generate the dbgen executable, indicating that the compilation was successful.
I built MatrixOne in the main branch first, now switch to another version before building panic
This problem can occur when MatrixOne version switching involves versions prior to 0.8.0 and the make build command is used. This is an incompatibility issue caused by the MatrixOne datastore format upgrade, but will continue to be compatible since version 0.8.0.
Note
In this case, we strongly recommend that you reinstall the latest stable version of MatrixOne for subsequent data compatibility, and recommend using the mo_ctl tool for quick build and startup.
Specifically, prior to MatrixOne version 0.8.0, after performing make build, a data directory file named mo-data was automatically generated to hold the data. If you switch to another branch and do make build again, the mo-data data directory is not automatically deleted, which may cause a panic situation due to incompatible data formats.
To fix this, you need to clean up the mo-data data directory (that is, execute the rm -rf mo-data command) before rebuilding MatrixOne.
The following reference code example uses an earlier build process:
[root ~]# cd matrixone // Go to matrixone file directory
[root ~]# git branch // View current branch * 0.8.0
[root ~]# make build // Build matrixone
... // Omit build process code here. If you want to switch to a different version at this point, for example version 0.7.0
[root ~]# git checkout 0.7.0 // switch to version 0.7.0
[root ~]# rm -rf mo-data // clean up the data directory
[root ~]# make build // build matrixone ... // omit the build process code here
I connect proxy with CN tag and login to MatrixOne cluster with password validation error
Cause of problem: The connection string was incorrectly written. Connecting to a MatrixOne cluster via a MySQL client supports extending the user name field by adding ?,? after the user name You can then follow the CN group label with = between the key and value of the CN group label and comma , between multiple key-values.
Workaround: Refer to the following example.
Suppose in your MatrixOne mo.yaml configuration file, the configuration of the CN group looks like this:
## Only part of the code is shown
...
- cacheVolume:
size: 100Gi
cnLabels:
- key: workload
values:
- bk
...
Connecting to the MatrixOne cluster via a MySQL client, you can use the following command example: mysql -u root?workload=bk -p111 -h 10.206.16.10 -P 31429. where workload=bk is the CN tag, connected using =.
There is a pod called job-bucket that keeps getting up when installing the latest operator. How should I troubleshoot it?
Can see if there is no secret. It may be that the minio connection information is not configured to connect to the minio.
Similarly, the command to export data using the mo-dump tool, you can refer to the example using the following command: mo-dump -u "dump?workload=bk" -h 10.206.16.10 -P 31429 -db tpch_10g > /tmp/mo/tpch_10g.sql.