1. 程式人生 > >sysbench 報錯:/usr/share/sysbench/oltp_common.lua:197: Unknown storage engine 'innodb'

sysbench 報錯:/usr/share/sysbench/oltp_common.lua:197: Unknown storage engine 'innodb'

執行環境: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進行壓測即可。