最小测试环境
    CPU:2核 内存:4G 硬盘:80GB

    操作系统
    这里是Ubuntu 20.04 LTS

    安装一个MySQL(https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/),建议使用额外的服务器搭建mysql服务器
    为方便测试,请修改账户为root,密码123456,如果修改了账号密码相应地也要修改mycat2中datasources中的配置

    安装MySQL客户端

    1. sudo apt update
    2. sudo apt install mysql-client

    安装JDK8

    1. sudo apt update
    2. sudo apt install openjdk-8-jdk

    安装sysbench

    1. sudo apt update
    2. sudo apt install sysbench

    为方便使用安装mysql-workbench

    1. sudo apt update
    2. sudo apt install mysql-workbench-community

    下载Mycat2

    1. jar
    2. http://dl.mycat.org.cn/2.0/1.21-release/
    3. 默认配置(conf是配置文件夹)
    4. http://dl.mycat.org.cn/2.0/install-template/
    5. 启动
    6. java -Dfile.encoding=UTF-8 -DMYCAT_HOME=conf -jar assistant-1.21-release-jar-with-dependencies.jar
    7. conf是配置文件所在文件夹

    使用mysql-workbench连接8066端口(Mycat2端口)
    创建testdb

    1. CREATE DATABASE IF NOT EXISTS testdb

    sysbench以oltp_point_select为例
    准备数据(prepare命令)

    1. sysbench oltp_point_select --mysql-host=127.0.0.1 --mysql-port=8066 --mysql-user=root --mysql-password='123456' --mysql-db=testdb --db-driver=mysql --tables=2 --table-size=10000000 --report-interval=1 --threads=2 prepare

    测试

    1. sysbench oltp_point_select --mysql-host=127.0.0.1 --mysql-port=8066 --mysql-user=root --mysql-password='123456' --mysql-db=testdb --db-driver=mysql --tables=2 --table-size=10000000 --report-interval=1 --threads=2 run

    清理数据

    1. sysbench oltp_point_select --mysql-host=127.0.0.1 --mysql-port=8066 --mysql-user=root --mysql-password='123456' --mysql-db=testdb --db-driver=mysql --tables=2 --table-size=10000000 --report-interval=1 --threads=2 cleanup

    在sysbench的debug模式下运行

    1. sysbench oltp_point_select --mysql-host=127.0.0.1 --mysql-port=8066 --mysql-user=root --mysql-password='123456' --mysql-db=testdb --db-driver=mysql --tables=2 --table-size=10000 --report-interval=1 --threads=2 --mysql-debug=on run

    上述的—tables=2参数会使测试需要两个表,它们分别是sbtest1,sbtest2,它们在prepare命令在sysbench自动创建

    1. 'CREATE TABLE `sbtest1` (
    2. `id` int NOT NULL AUTO_INCREMENT,
    3. `k` int NOT NULL DEFAULT ''0'',
    4. `c` char(120) NOT NULL DEFAULT '''',
    5. `pad` char(60) NOT NULL DEFAULT '''',
    6. PRIMARY KEY (`id`),
    7. KEY `k_1` (`k`)
    8. ) ENGINE=InnoDB AUTO_INCREMENT=77597 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci'

    所以—tables=10时,测试的表是sbtest1,sbtest2…sbtest10

    测试分片表
    如果是分片表,可以先在mycat里面建立分片表,然后再运行prepare命令,导入数据,然后执行run命令