运行环境:CentOS 7.5 + MariaDB 10.3.8 +sysbench 1.0.15
# rpm -qa | grep -i sysbench
sysbench-1.0.15-2.el7.x86_64
背景:
在对MyRocksDB进行benchmark测试的时候为了方便使用sysbench
采用了Percona打包好的sysbench RPM包,安装的MySQL实例默认的存储引擎为RocksDB。
在对此实例压测的时候报错:
sysbench 1.0.15 (using bundled LuaJIT 2.1.0-beta2)
Initializing worker threads...
Creating table 'sbtest1'...
FATAL: mysql_drv_query() returned error 1286 (Unknown storage engine 'innodb') for query 'CREATE TABLE sbtest1(
id INTEGER NOT NULL AUTO_INCREMENT,
k INTEGER DEFAULT '0' NOT NULL,
c CHAR(120) DEFAULT '' NOT NULL,
pad CHAR(60) DEFAULT '' NOT NULL,
PRIMARY KEY (id)
) /*! ENGINE = innodb */ '
FATAL: `sysbench.cmdline.call_command' function failed: /usr/share/sysbench/oltp_common.lua:197: SQL error,
errno = 1286, state = '42000': Unknown storage engine 'innodb'
根据 提示信息说是不支持非InnoDB为存储引擎的表。
按照提示打开/usr/share/sysbench/oltp_common.lua,修改存储引擎为rocksDB。
看来Percona公司对InnoDB存储引擎做了特殊的定制。
69 mysql_storage_engine =
70 -- {"Storage engine, if MySQL is used", "innodb"},
71 {"Storage engine, if MySQL is used", "rocksdb"},
修改之后重新使用sysbench进行压测即可。