Я создал пользователя с именем sbtest, без пароля, со всеми правами на sbtest, и возникает следующая ошибка. Что я делаю не так?
$ 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
Вы должны сначала запустить "подготовить". Это создаст таблицу, необходимую для теста.
В вашем случае это должно быть
sysbench --test=oltp prepare
sbtest
база данных и sbtest
пользователь.Если вы не собираетесь передавать параметры команды в sysbench
, то вам нужно будет создать базу данных и пользователя, которого она ожидает при разговоре с сервером MySQL.
Войдите на свой сервер MySQL, используя root
пользователь или что угодно:
mysql -u root -p
Создайте sbtest
база данных, sbtest
пользователь и предоставить привилегии:
CREATE DATABASE sbtest;
CREATE USER 'sbtest'@'localhost';
GRANT ALL PRIVILEGES ON * . * TO 'sbtest'@'localhost';
FLUSH PRIVILEGES;
quit;
Подготовить базу данных:
sysbench --test=oltp --db-driver=mysql prepare