涉及到sysbench源码的配置和编译,首先确认系统安装了gcc gcc-c++编译器;
确认安装了autoconf 、automake、libtool等;
[root@PC download]# rpm -qa | grep automake
[root@PC download]# rpm -qa | grep autoconf
[root@PC download]# rpm -qa | grep libtool
必须安装MySQL-devel;
否则后面make intall的时候会报错:/usr/bin/ld: cannot find -lmysqlclient_r。
yum install mysql-devel -y
--开始安装sysbench,点击这里下载:
tar xzvf sysbench-0.5.tar.gz
cd sysbench-0.5
chmod +x autogen.sh
./autogen.sh
./configure --with-mysql --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/lib64/mysql
make
make install
确保make,make install无误才行。
注意:
./configure --with-mysql --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/lib64/mysql 这两个目录根据实际系统情况指定。
不确定的话,可以查找一下:
[root@PC local]# find / -name mysql
--假如make时报错:
- drv_mysql.c:36:19: error: mysql.h: No such file or directory
- drv_mysql.c:37:26: error: mysqld_error.h: No such file or directory
- drv_mysql.c:43:5: warning: "MYSQL_VERSION_ID" is not defined
- drv_mysql.c:48:5: warning: "MYSQL_VERSION_ID" is not defined
- drv_mysql.c: In function ‘mysql_drv_init’:
- drv_mysql.c:240: warning: implicit declaration of function ‘mysql_library_init’
- drv_mysql.c:240: warning: nested extern declaration of ‘mysql_library_init’
- drv_mysql.c: In function ‘mysql_drv_connect’:
- drv_mysql.c:262: error: ‘MYSQL’ undeclared (first use in this function)
- drv_mysql.c:262: error: (Each undeclared identifier is reported only once
- drv_mysql.c:262: error: for each function it appears in.)
- drv_mysql.c:262: error: ‘con’ undeclared (first use in this function)
- drv_mysql.c:268: error: expected expression before ‘)’ token
- drv_mysql.c:274: warning: implicit declaration of function ‘mysql_init’
- drv_mysql.c:274: warning: nested extern declaration of ‘mysql_init’
- drv_mysql.c:300: warning: implicit declaration of function ‘mysql_ssl_set’
- drv_mysql.c:300: warning: nested extern declaration of ‘mysql_ssl_set’
- drv_mysql.c:303: error: ‘MYSQL_VERSION_ID’ undeclared (first use in this function)
- drv_mysql.c:313: warning: implicit declaration of function ‘mysql_real_connect’
- drv_mysql.c:313: warning: nested extern declaration of ‘mysql_real_connect’
- drv_mysql.c:320:5: warning: "MYSQL_VERSION_ID" is not defined
- drv_mysql.c:328: warning: implicit declaration of function ‘mysql_errno’
- drv_mysql.c:328: warning: nested extern declaration of ‘mysql_errno’
- drv_mysql.c:329: warning: implicit declaration of function ‘mysql_error’
- drv_mysql.c:329: warning: nested extern declaration of ‘mysql_error’
- drv_mysql.c: In function ‘mysql_drv_disconnect’:
- drv_mysql.c:343: error: ‘MYSQL’ undeclared (first use in this function)
- drv_mysql.c:343: error: ‘con’ undeclared (first use in this function)
- drv_mysql.c:348: warning: implicit declaration of function ‘mysql_close’
- drv_mysql.c:348: warning: nested extern declaration of ‘mysql_close’
- drv_mysql.c: In function ‘mysql_drv_bind_param’:
- drv_mysql.c:423: error: ‘MYSQL’ undeclared (first use in this function)
- drv_mysql.c:423: error: ‘con’ undeclared (first use in this function)
- drv_mysql.c:423: error: expected expression before ‘)’ token
- drv_mysql.c: In function ‘mysql_drv_query’:
- drv_mysql.c:639: error: ‘MYSQL’ undeclared (first use in this function)
- drv_mysql.c:639: error: ‘con’ undeclared (first use in this function)
- drv_mysql.c:643: warning: implicit declaration of function ‘mysql_real_query’
- drv_mysql.c:643: warning: nested extern declaration of ‘mysql_real_query’
- drv_mysql.c:649: error: ‘ER_LOCK_DEADLOCK’ undeclared (first use in this function)
- drv_mysql.c:649: error: ‘ER_LOCK_WAIT_TIMEOUT’ undeclared (first use in this function)
- drv_mysql.c:650: error: ‘ER_CHECKREAD’ undeclared (first use in this function)
- drv_mysql.c: In function ‘mysql_drv_fetch_row’:
- drv_mysql.c:678: warning: implicit declaration of function ‘mysql_fetch_row’
- drv_mysql.c:678: warning: nested extern declaration of ‘mysql_fetch_row’
- drv_mysql.c:678: warning: assignment makes pointer from integer without a cast
- drv_mysql.c: In function ‘mysql_drv_store_results’:
- drv_mysql.c:705: error: ‘MYSQL’ undeclared (first use in this function)
- drv_mysql.c:705: error: ‘con’ undeclared (first use in this function)
- drv_mysql.c:706: error: ‘MYSQL_RES’ undeclared (first use in this function)
- drv_mysql.c:706: error: ‘res’ undeclared (first use in this function)
- drv_mysql.c:707: error: ‘MYSQL_ROW’ undeclared (first use in this function)
- drv_mysql.c:707: error: expected ‘;’ before ‘row’
- drv_mysql.c:751: warning: implicit declaration of function ‘mysql_store_result’
- drv_mysql.c:751: warning: nested extern declaration of ‘mysql_store_result’
- drv_mysql.c:757: error: ‘ER_LOCK_DEADLOCK’ undeclared (first use in this function)
- drv_mysql.c:757: error: ‘ER_LOCK_WAIT_TIMEOUT’ undeclared (first use in this function)
- drv_mysql.c:758: error: ‘ER_CHECKREAD’ undeclared (first use in this function)
- drv_mysql.c:765: warning: implicit declaration of function ‘mysql_field_count’
- drv_mysql.c:765: warning: nested extern declaration of ‘mysql_field_count’
- drv_mysql.c:772: warning: implicit declaration of function ‘mysql_num_rows’
- drv_mysql.c:772: warning: nested extern declaration of ‘mysql_num_rows’
- drv_mysql.c:776: error: ‘row’ undeclared (first use in this function)
- drv_mysql.c: In function ‘mysql_drv_free_results’:
- drv_mysql.c:799: warning: implicit declaration of function ‘mysql_free_result’
- drv_mysql.c:799: warning: nested extern declaration of ‘mysql_free_result’
- drv_mysql.c:799: error: ‘MYSQL_RES’ undeclared (first use in this function)
- drv_mysql.c:799: error: expected expression before ‘)’ token
请检查下--with-mysql-includes=/usr/local/mysql/include该路径是否配置正确。如,最上方报错:drv_mysql.c:36:19: error: mysql.h: No such file or directory
查找一下mysql.h是否在某个Include目录下存在。
安装完成后,检查该工具是否可以使用:
[root@PC local]# sysbench --help
- Missing required command argument.
- Usage:
- sysbench [general-options]... --test=<test-name> [test-options]... command
- General options:
- --num-threads=N number of threads to use [1]
- --max-requests=N limit for total number of requests [10000]
- --max-time=N limit for total execution time in seconds [0]
- --forced-shutdown=STRING amount of time to wait after --max-time before forcing shutdown [off]
- --thread-stack-size=SIZE size of stack per thread [64K]
- --tx-rate=N target transaction rate (tps) [0]
- --tx-jitter=N target transaction variation, in microseconds [0]
- --report-interval=N periodically report intermediate statistics with a specified interval in seconds. 0 disables intermediate reports [0]
- --test=STRING test to run
- --debug=[on|off] print more debugging info [off]
- --validate=[on|off] perform validation checks where possible [off]
- --help=[on|off] print help and exit
- --version=[on|off] print version and exit [off]
- --rand-init=[on|off] initialize random number generator [off]
- --rand-type=STRING random numbers distribution {uniform,gaussian,special} [special]
- --rand-spec-iter=N number of iterations used for numbers generation [12]
- --rand-spec-pct=N percentage of values to be treated as 'special' (for special distribution) [1]
- --rand-spec-res=N percentage of 'special' values to use (for special distribution) [75]
- --rand-seed=N seed for random number generator, ignored when 0 [0]
- Log options:
- --verbosity=N verbosity level {5 - debug, 0 - only critical messages} [3]
- --percentile=N percentile rank of query response times to count [95]
- Compiled-in tests:
- fileio - File I/O test
- cpu - CPU performance test
- memory - Memory functions speed test
- threads - Threads subsystem performance test
- mutex - Mutex performance test
- Commands: prepare run cleanup help version
- See 'sysbench --test=<name> help' for a list of options for each test.
假如找不到sysbench命令,有可能make,make install的时候就报错了。请返回查看,解决报错问题后,重新编译。
--本篇文章参考自:http://www.linuxidc.com/Linux/2014-02/97107p2.htmsysbench下载安装
http://blog.csdn.net/yabingshi_tech/article/details/53113199