MySQL基准测试套件Benchmark安装DBI组件过程分享

今天打算用MySQL自带的基准测试套件(Benchmark Suite)来测试一下插入性能,结果出现错误:

代码如下:

# 还是交代一下环境吧
[root@beanvm ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.2 (Santiago)
[root@beanvm ~]# uname -a
Linux beanvm 2.6.32-220.el6.i686 #1 SMP Wed Nov 9 08:02:18 EST 2011 i686 i686 i386 GNU/Linux
# 下为报错
[mysql@beanvm ~]$ cd /usr/local/mysql/sql-bench/
[mysql@beanvm sql-bench]$ ./test-insert --server=mysql --user=root --password=mysql --log
Can't locate DBI.pm in @INC (@INC contains: /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 .) at ./test-insert line 33.
BEGIN failed--compilation aborted at ./test-insert line 33.

很显然这里缺少DBI组件,它是perl连接数据库的重要接口,先来检查一下这个包是否存在

代码如下:

[mysql@beanvm ]$ rpm -qa |grep perl-DB

可以直接用yum来安装,这里我用的安装包的形式,幸运的是,这些包在RHEL6的安装介质中都可以找到,只要安装下面两个包就可以了:

代码如下:

[root@beanvm Packages]# rpm -ivh perl-DBI-1.609-4.el6.i686.rpm
warning: perl-DBI-1.609-4.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
   1:perl-DBI               ########################################### [100%]
[root@beanvm Packages]# rpm -ivh perl-DBD-MySQL-4.013-3.el6.i686.rpm
warning: perl-DBD-MySQL-4.013-3.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies:
        libmysqlclient.so.16 is needed by perl-DBD-MySQL-4.013-3.el6.i686
        libmysqlclient.so.16(libmysqlclient_16) is needed by perl-DBD-MySQL-4.013-3.el6.i686

在安装perl-DBD-MySQL包时,我们发现提示缺失libmysqlclient.so.16文件,如果是经常安装MySQL的话,应该知道libmysqlclient.so是一个MySQL数据库中必备的库文件,会不会是没有链接到呢?

代码如下:

[root@beanvm ~]# ls -l /usr/lib/libmysqlclient.so.16*
[root@beanvm ~]# ls -l /usr/local/mysql/lib/
total 147260
-rw-r--r--. 1 mysql mysql  13322694 Feb 15 14:30 libmysqlclient.a
lrwxrwxrwx. 1 mysql mysql        16 Feb 15 14:39 libmysqlclient_r.a -> libmysqlclient.a
lrwxrwxrwx. 1 mysql mysql        17 Feb 15 14:39 libmysqlclient_r.so -> libmysqlclient.so
lrwxrwxrwx. 1 mysql mysql        20 Feb 15 14:39 libmysqlclient_r.so.18 -> libmysqlclient.so.18
lrwxrwxrwx. 1 mysql mysql        24 Feb 15 14:39 libmysqlclient_r.so.18.1.0 -> libmysqlclient.so.18.1.0
lrwxrwxrwx. 1 mysql mysql        20 Feb 15 14:39 libmysqlclient.so -> libmysqlclient.so.18
lrwxrwxrwx. 1 mysql mysql        24 Feb 15 14:39 libmysqlclient.so.18 -> libmysqlclient.so.18.1.0
-rwxr-xr-x. 1 mysql mysql   7654927 Feb 15 14:30 libmysqlclient.so.18.1.0
-rw-r--r--. 1 mysql mysql 129797464 Feb 15 14:38 libmysqld.a
-rw-r--r--. 1 mysql mysql     10166 Feb 15 14:29 libmysqlservices.a
drwxr-xr-x. 3 mysql mysql      4096 Feb 15 14:39 plugin

从上面的结果可以得知,已经存在libmysqlclient.so.18文件了,但是版本不符,因此还是需要这个libmysqlclient.so.16文件,那么从哪里可以找到呢?最简便的方法就是安装MySQL RPM安装套件中的MySQL-shared-compat包:(我的MySQL是编译安装的,但是在同版本的RPM套件中MySQL-shared-compat-5.6.16-1.el6.i686.rpm包却提供了必要的libmysqlclient.so.16文件,就这点来说编译部署还是没有RPM安装来的全面)

代码如下:

# 我的MySQL版本:5.6.16
[root@beanvm ~]# rpm -ivh MySQL-shared-compat-5.6.16-1.el6.i686.rpm
Preparing...                ########################################### [100%]
   1:MySQL-shared-compat    ########################################### [100%]

再次安装perl-DBD-MySQL-4.013-3.el6.i686.rpm就可以了

代码如下:

[root@beanvm Packages]# rpm -ivh perl-DBD-MySQL-4.013-3.el6.i686.rpm
warning: perl-DBD-MySQL-4.013-3.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
   1:perl-DBD-MySQL         ########################################### [100%]

综上所述,安装DBI建议顺序安装三个包:

代码如下:

# DBI安装包:
perl-DBI-1.609-4.el6.i686.rpm
# 必备的库文件包,注意版本,这里主要提供的是libmysqlclient.so.16
MySQL-shared-compat-5.6.16-1.el6.i686.rpm
# DBD组件
perl-DBD-MySQL-4.013-3.el6.i686.rpm

成功后就可以使用Benchmark进行基准测试了,下面是测试插入性能的部分数据:

代码如下:

[mysql@beanvm sql-bench]$ ./test-insert --server=mysql --user=root --password=mysql --log
Testing server 'MySQL 5.6.16' at 2014-02-15 16:36:17

Testing the speed of inserting data into 1 table and do some selects on it.
The tests are done with a table that has 100000 rows.

Generating random keys
Creating tables
Inserting 100000 rows in order
Inserting 100000 rows in reverse order
Inserting 100000 rows in random order
Time for insert (300000): 879 wallclock secs ( 3.51 usr  1.21 sys +  0.00 cusr  0.00 csys =  4.72 CPU)

Testing insert of duplicates
Time for insert_duplicates (100000): 18 wallclock secs ( 3.81 usr  1.41 sys +  0.00 cusr  0.00 csys =  5.22 CPU)

Test of prepared+execute/once prepared many execute selects
Time for prepared_select (100000): 31 wallclock secs (10.87 usr  1.81 sys +  0.00 cusr  0.00 csys = 12.68 CPU)
......

机器太差,数据请无视。。

(0)

相关推荐

  • MySQL慢查询查找和调优测试

    编辑 my.cnf或者my.ini文件,去除下面这几行代码的注释: 复制代码 代码如下: log_slow_queries = /var/log/mysql/mysql-slow.log long_query_time = 2 log-queries-not-using-indexes 这将使得慢查询和没有使用索引的查询被记录下来. 这样做之后,对mysql-slow.log文件执行tail -f命令,将能看到其中记录的慢查询和未使用索引的查询. 随便提取一个慢查询,执行explain: 复制代

  • 测试PHP连接MYSQL成功与否的代码

    方法很简单: 将下面的代码保存为test.php,放到web目录里面执行即可. 复制代码 代码如下: <?php $link=mysql_connect("localhost","root","123"); if(!$link) echo "FAILD!连接错误,用户名密码不对"; else echo "OK!可以连接"; ?> 其中mysql_connect( )函数的参数依次为:mysql服

  • MySQL循环语句之while循环测试

    mysql 操作同样有循环语句操作,网上说有3中标准的循环方式: while 循环 . loop 循环和repeat循环.还有一种非标准的循环: goto. 鉴于goto 语句的跳跃性会造成使用的的思维混乱,所以不建议使用. 这几个循环语句的格式如下: WHILE--DO--END WHILE REPEAT--UNTIL END REPEAT LOOP--END LOOP GOTO. 目前我只测试了 while 循环: delimiter $$ // 定义结束符为 $$ drop procedu

  • mysql5.0入侵测试以及防范方法分享

    在做了之前的SQL SERVER之后,便很想尝试一下MYSQL的入侵测试已经防范,与大家一起分享.总的来说,我一直在用的是MYSQL,对MYSQL比较熟悉,相比较而言,感觉MYSQL更安全,这只是我自己胡乱猜想的,希望不要引起什么争论神马的...一本馒头引发的血案... 正题之一 物理机:Win7虚拟机:XP 给予mysql远程权限: 复制代码 代码如下: grant all privileges on *.* to 数据库账号@给予权限的IP identified by '数据库密码';flu

  • php并发对MYSQL造成压力的解决方法

    PHP页面有一个浏览量统计每秒有200并发,造成insert给mysql造成很大压力 lnmp环境,其他页面内容都做了缓存了,没有多大的负载,就是这个浏览量统计功能,给mysql带来不小的压力,请问诸位有什么解决办法吗? 怎么都说不要用MySQL来做,每秒200并发对MySQL来说不算啥难事啊.而且换成Redis.Memcached,持久化姑且不说,业务代码和运维部署量都不小. 我给你几个建议,尽量让你的运维部署和业务代码改动小一些. 你可以做主从分离,不要在一个库上高并发插入同时还做大量统计运

  • MySQL实现差集(Minus)和交集(Intersect)测试报告

    可以用SQL实现同样的功能,就是麻烦了点. drop table t1; drop table t2; create table t1(id int primary key,nickname varchar(20),playNum varchar(20)); create table t2(id int primary key,nickname varchar(20),playNum varchar(20)); insert into t1 values(1,1,10); insert into

  • mysql压力测试脚本实例

    本文实例讲述了mysql压力测试的脚本,分享给大家供大家参考.具体如下: 创建表DEPT 复制代码 代码如下: CREATE TABLE dept( /*部门表*/ deptno MEDIUMINT   UNSIGNED  NOT NULL  DEFAULT 0, dname VARCHAR(20)  NOT NULL  DEFAULT "", loc VARCHAR(13) NOT NULL DEFAULT "" ) ENGINE=MyISAM DEFAULT C

  • mysql中迅速插入百万条测试数据的方法

    对比一下,首先是用 mysql 的存储过程弄的: 复制代码 代码如下: mysql>delimiter $ mysql>SET AUTOCOMMIT = 0$$ mysql> create procedure test() begin declare i decimal (10) default 0 ; dd:loop INSERT INTO `million` (`categ_id`, `categ_fid`, `SortPath`, `address`, `p_identifier`

  • Mysqlslap MySQL压力测试工具 简单教程

    MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问mysql来执行测试,使用起来非常的简单.通过mysqlslap –help可以获得可用的选项,这里列一些主要的参数,更详细的说明参考官方手册. 复制代码 代码如下: –auto-generate-sql, -a 自动生成测试表和数据 –auto-generate-sql-load-type=type 测试语句的类型.取值包括:read,key,write,update和mixed(默认). –numb

  • MySQL基准测试套件Benchmark安装DBI组件过程分享

    今天打算用MySQL自带的基准测试套件(Benchmark Suite)来测试一下插入性能,结果出现错误: 复制代码 代码如下: # 还是交代一下环境吧 [root@beanvm ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.2 (Santiago) [root@beanvm ~]# uname -a Linux beanvm 2.6.32-220.el6.i686 #1 SMP Wed Nov 9 0

  • Centos5.5中安装Mysql5.5过程分享

    这几天在centos下装mysql,这里记录一下安装的过程,方便以后查阅 Mysql5.5.37安装需要cmake,5.6版本开始都需要cmake来编译,5.5以后的版本应该也要装这个. 安装cmake 复制代码 代码如下: [root@local ~]# wget http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz [root@local ~]# tar xvf cmake-2.8.12.2.tar.gz [root@local ~]#

  • MySQL数据库INNODB表损坏修复处理过程分享

    突然收到MySQL报警,从库的数据库挂了,一直在不停的重启,打开错误日志,发现有张表坏了.innodb表损坏不能通过repair table 等修复myisam的命令操作.现在记录下解决过程,下次遇到就不会这么手忙脚乱了. 处理过程: 一遇到报警之后,直接打开错误日志,里面的信息: InnoDB: Database page corruption on disk or a failed InnoDB: file read of page 30506. InnoDB: You may have t

  • windows下MySQL5.6版本安装及配置过程附有截图和详细说明

                        编辑者:Vocabulary 下面详细介绍5.6版本MySQL的下载.安装及配置过程. 图1.1 MySQL5.6 目前针对不同用户,MySQL提供了2个不同的版本: Ø         MySQL Community Server:社区版,该版本完全免费,但是官方不提供技术支持. Ø         MySQL Enterprise Server:企业版,它能够高性价比的为企业提供数据仓库应用,支持ACID事物处理,提供完整的提交.回滚.崩溃恢复和行级锁

  • mysql 5.7.10 安装配置方法图文教程

    MySQL5.7.10下载及安装及配置 一.下载 自MySQL版本升级到5.7以后,其安装及配置过程和原来版本发生了很大的变化,下面详细介绍5.7版本MySQL的下载.安装及配置过程. 图1.1 MySQL5.7 目前针对不同用户,MySQL提供了2个不同的版本: Ø MySQL Community Server:社区版,该版本完全免费,但是官方不提供技术支持. Ø MySQL Enterprise Server:企业版,它能够高性价比的为企业提供数据仓库应用,支持ACID事物处理,提供完整的提

  • mysql 8.0.14 安装配置方法图文教程

    本文记录了mysql 8.0.14 安装配置的过程,供大家参考,具体内容如下 1.下载 地址:下载地址 找到zip压缩文件. 2.配置环境变量 把解压后的路径配置到环境变量中 3.安装 在解压后的文件夹中新建my.ini配置文件 [mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录 basedir=C:\Program Files\MySQL\mysql-8.0.14-winx64 # 设置mysql数据库的数据的存放目录 datadir=C:\Program

  • Window10下mysql 5.7.21 安装配置方法图文教程

    本文记录了mysql 5.7.21 安装配置方法,分享给大家. 1.下载安装包 下面是官网windows系统的mysql下载地址 Mysql下载地址 点进去页面如下 根据你电脑的系统选择对应的mysql数据库下载即可. 下载完毕后点击下载的msi文件直接进入安装步骤   - 后面的就不一一列举了,什么都不需要改,一直安装到完成为止.需要输入密码的地方就输入密码就可以了. 完成后就恭喜你,你的mysql数据库就已经完成了. 不过每次使用的时候,必须进入mysql的安装bin目录才可以通过mysql

  • Mysql 5.7.18安装方法及启动MySQL服务的过程详解

    MySQL 是一个非常强大的关系型数据库.但有些初学者在安装配置的时候,遇到种种的困难,在此就不说安装过程了,说一下配置过程.在官网下载的MySQL时候,有msi格式和zip格式.Msi直接运行安装即可,zip则解压在自己喜欢的目录地址即可.在安装这两种的时候,都需要配置才能用.以下介绍主要是msi格式默认的地址:C:\Program Files\ mysql-5.7.18-win32. 一.在安装或者解压后,需要配置环境变量,过程如下:我的电脑->属性->高级系统设置->高级->

  • MySQL5.7.03 更换高版本到MySQL 5.7.17安装过程及发现问题解决方案

    一.如何安装? 1.[运行]->[cmd]打开小黑窗口.定位到MySQL安装目录[我的D:\Program Files\mysql-5.7.9-winx64]的bin目录下,输入[mysqld -install].如下图,表示安装成功 2.打开MySQL安装目录,找到[my-default.ini],配置一些简单的信息. # These are commonly set, remove the # and set as required. basedir = D:\Program Files\m

  • 详解标准mysql(x64) Windows版安装过程

    mysql x64不提供安装器,不提供安装器,不提供安装器-- 每次查英文文档有点慢,不够简. 5.7.6以后的64位zip包下载后解压是没有data目录的. 进入解压后的bin目录:(我用的powershell) 初始化data目录(会随机分配一个密码,记下来) .\mysqld --initialize --console 安装服务(自动启动的服务,只安装,不启动) .\mysqld --install --install-manual是手动启动,--remove是卸载服务 启动 net s

随机推荐