Você deve executar "preparar" primeiro. Ele criará a tabela necessária para o benchmark.
No seu caso, deve ser
sysbench --test=oltp prepare
Eu criei um usuário chamado sbtest, sem senha, com todos os direitos em sbtest, e o seguinte erro ocorre. O que estou fazendo errado?
$ sysbench --test=oltp run --debug
sysbench 0.4.12: multi-threaded system evaluation benchmark
No DB drivers specified, using mysql
DEBUG: mysql_init(0xc854f0)
DEBUG: mysql_real_connect(0xc854f0, "localhost", "sbtest", "(null)", "sbtest", 3306, "(null)", CLIENT_MULTI_STATEMENTS)
DEBUG: mysql_real_query(0xc854f0, "SHOW TABLE STATUS LIKE 'sbtest'", 31) = 0
DEBUG: mysql_store_result(0xc854f0) = 0xc9dce0
DEBUG: mysql_num_fields(0xc9dce0) = 18
DEBUG: mysql_fetch_fields(0xc9dce0) = 0xc9fce0
DEBUG: mysql_fetch_row(0xc9dce0) = (nil)
ALERT: Error: failed to determine table 'sbtest' type!
ALERT: MySQL error:
DEBUG: mysql_free_result(0xc9dce0)
DEBUG: mysql_close(0xc854f0)
FATAL: failed to get database capabilities
sbtest
database e sbtest
user. Se você não fornecer parâmetros de comando para o comando sysbench
, precisará criar o banco de dados e o usuário que ele espera ao conversar com o servidor MySQL.
Faça login no seu servidor MySQL usando o usuário root
ou o que você quiser:
mysql -u root -p
Crie privilégios de sbtest
database, sbtest
user e grant:
CREATE DATABASE sbtest;
CREATE USER 'sbtest'@'localhost';
GRANT ALL PRIVILEGES ON * . * TO 'sbtest'@'localhost';
FLUSH PRIVILEGES;
quit;
Preparar banco de dados:
sysbench --test=oltp --db-driver=mysql prepare