最小测试环境
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客户端
sudo apt update
sudo apt install mysql-client
安装JDK8
sudo apt update
sudo apt install openjdk-8-jdk
安装sysbench
sudo apt update
sudo apt install sysbench
为方便使用安装mysql-workbench
sudo apt update
sudo apt install mysql-workbench-community
下载Mycat2
jar
http://dl.mycat.org.cn/2.0/1.21-release/
默认配置(conf是配置文件夹)
http://dl.mycat.org.cn/2.0/install-template/
启动
java -Dfile.encoding=UTF-8 -DMYCAT_HOME=conf -jar assistant-1.21-release-jar-with-dependencies.jar
conf是配置文件所在文件夹
使用mysql-workbench连接8066端口(Mycat2端口)
创建testdb
CREATE DATABASE IF NOT EXISTS testdb
sysbench以oltp_point_select为例
准备数据(prepare命令)
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
测试
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
清理数据
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模式下运行
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自动创建
'CREATE TABLE `sbtest1` (
`id` int NOT NULL AUTO_INCREMENT,
`k` int NOT NULL DEFAULT ''0'',
`c` char(120) NOT NULL DEFAULT '''',
`pad` char(60) NOT NULL DEFAULT '''',
PRIMARY KEY (`id`),
KEY `k_1` (`k`)
) ENGINE=InnoDB AUTO_INCREMENT=77597 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci'
所以—tables=10时,测试的表是sbtest1,sbtest2…sbtest10
测试分片表
如果是分片表,可以先在mycat里面建立分片表,然后再运行prepare命令,导入数据,然后执行run命令