Назад | Перейти на главную страницу

Sysbench MySQL не может подключиться

Я создал пользователя с именем 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