MySQL自带工具使用介绍

MySQL自带工具使用介绍:
1)mysql命令:mysql命令事是使用最多的命令工具了,为用户提供了一个命令行接口来操作管理MySQL的服务器。
命令格式:
Usage:mysql [OPTIONS][database]
例:mysql -e "select user,host from user" mysql
mysql --help 可以得到相应的基础使用帮助信息
-e : --execut=name :我们要执行-e后面的命令,但是并不通过mysql连接进入mysql交互界面。此参数在我们写一些基本的mysql检查和监控脚本中非常有用。
-E :--vertical :登陆之后的所有查询结果都将以纵列显示
-H ,--html,-X,--xml,:在启用这两个参数之后,select出来的所有结果都会按照Html,与Xml格式输出
--prompt=name :对于运维的人来说是一个非常重要的参数,其主要功能是定制自己的mysql提示符的显示内容。br/>个人强烈建议:\\[email protected]\\h:\\d\\r:\\m:\\s>
\u:表示用户名
\h:表示主机名
\d:表示当前数据库
\r:小时(12小时制)
\m:分钟
\s:秒
--tee=name:用来告诉mysql,将所有的输入和输出的内容记录到文件。在我们进行较大的维护变更的时候,为了方便被查,最好将所有的输入和输出的内容记录下来,方便被查。
也可以直接加入到my.cnf中的[client]
或者在mysql提示符下面执行 tee /path
2)mysqladmin:提供的功能都是与MySQL相关的管理功能
Usage: mysqladmin[OPTIONS]command command
ping :ping命令可以很容易检测MySQL server是否还能正常提供服务
例: mysqladmin -utest -h192.168.1.1 -p ping
注意:1、地址192.168.1.1 是MySQL server的ip(指本机或别的物理机上的ip)
2、MySQL server 的防火墙要允许3306/tcp 通信
3、test 一定要是MySQL sever上的授权用户
status:可以获取当前MySQL server 的几个基本的状态值
mysqladmin status 命令结果有:
Uptime:是MySQL服务器运行的秒数
Threads:活跃线程的数量即开启的会话数
Questions:服务器启动以来客户的问题(查询数目)(只要跟mysql做交互,不管查询表,还是查询服务器状态都记一次)
slow queries:是慢查询的数量
Opens:已经打开的数据库表的数量
Flush tables:mysql 已经执行的flush tables,refresh和reload命令的数量
注:fflush table:刷新表(清除缓存)
reload:重载授权表
refresh:洗掉所有表并关闭和打开日志文件
open:打开数据库的表的数量,以服务器启动开始
Querish per second avg:select语句平均查询的时间
Menory in use:分配的内容(只有在MySQL用--with-debug编译时可用)
MAX memory used:分配的最大内存(只有在MySQL用--with-debug编译时可用)
processlist:获取当前的数据库的连接线程信息
监控mysql进程运行状态

3)  mysqldump:这个工具的功能就是将MySQL server中的数据以SQL语句的形式从数据库中dump成文本文件(一种备份工具,大量数据不推荐,因为恢复太慢)
4)mysqlbinlog:主要是分析MySQL server所产生的二进制文件
附加知识点:
    1)INFORMATION_SCHEMA 数据字典,次数据库存储了其他所有数据库的信息(元数据)
        元数据是关于数据的数据,如database name 或table name ,列的数据类型或访问权限等。

        INFORMATION_SCHEMA库中的主要系统表
            TABLES表:提供了关于关于数据库中的表和视图信息(table_schame字段代表 数据表所属的数据库名)
                例:select * from information——schema.tables wehere table_schema=‘数据库‘
            COLUMNS表:提供了表中的列信息,详细表述了某张表的所有列以及每个列的信息。
                select * from information_schema.columns where table_schema=‘数据库名‘ and table_name=‘表名‘
            TABLE_CONSTRAINTS表:存储主键约束,外键约束,唯一约束,check约束,各字段的说明信息。
                select * from information_schema.table_constraints where table_schema=‘数据库名‘ and table_name=‘表明‘
            STAISTICS表:提供了关于表索引的信息
                select * from information_schema.staistics wehere table_schema=‘数据库名‘ and table_name=‘表名‘
    2)performance_schema性能字典,此数据库为数据库性能优化提供了重要的参考信息
    3)MySQL数据库:该数据库也是个核心数据库,存储用户的权限信息与帮助信息。
    4)MySQL5.7 提供了sys系统数据库,sys数据库里面包含了一系列的存储过程,自定义函数以及视图来帮助我们快速的了解系统的元数据信息。sys系统数据库结合了information_schema和performance_schema的相关数据,让我们更加容易的检索元数据。

mysqlslap性能测试MySQL的存储引擎
mysqlslap是MySQL自带的基准测试工具,
优点:查询数据,语法简单,灵活容易使用,该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出性能测试数据,而且提供了多种引擎的性能比较,mysqlslap为mysql性能优化前后提供了直观的验证证据。

    常用选项的解释:
        --concurrency (-c)  代表并发数量,多个可以用逗号隔开。
        --engins  代表要测试的引擎,可以有多个,用分号隔开
        --iterations (-i) 代表要运行这些测试多少次,即运行多少次后,得到结果
        --auto-generata-sql  代表系统自己生成的SQL脚本来测试
        --auto-generate-sql-load-type:代表要测试的是读是写还是混合模式(read,write,updata,mixed)
        --number-of-queries  代表总共要运行多少次查询。
        --debug-info:代表要额外输出CPU以及内存的相关信息(注:只有在MySQL用--with-debug编译时即可)
        --number-int-cols  :代表测试表中的integer类型的属性有几个
        --number-char-cols  :代表测试表的char类型字段数量
        --create-schema  代表自己定义的模式(在MySQL中也就是库即创建测试的数据库)
        -query  代表自己SQL脚本
        --only-print  如果只想打印看看SQL语句是什么,可以用这个选项
        --csv=name 生产CSV格式数据文件

例子:用我们自己定义的SQL脚本或语句来测试
首先准备准备好要测试的数据库表

#!/bin/bash
HOSTNAME="localhost"
PORT="3306"
USERNAME="root"
PASSWORD="123456"
DBNAME="test1"
TABLENAME="tb1"
#create database
mysql -h ${HOSTNAME} -P ${PORT} -u ${USERNAME} -p${PASSWORD} -e "drop database if exists ${DBNAME}"
create_db_sql="create database if not exists ${DBNAME}"
mysql -h ${HOSTNAME} -P ${PORT} -p${PASSWORD} -u ${USERNAME} -e "${create_db_sql}"
#create table
create_table_sql="create table if not exists ${TABLENAME}(stuid int not null primary key,stuname varchar(20) not null,stusex char(1) not null,cardid carchar(20) not null,birthday datetime,entertime datetime,address varchar(100) default null)"
mysql -h ${HOSTNAME} -P{PORT} -p${PASSWORD} -u ${USERNAME} ${DBNAME} -e "${create_table_sql}"
#insert data to table
i=1
while [$i -le 20000]
do
insert_sql="insert into ${TABLENAME} values ($i,‘zhangsan‘,‘1‘,‘1234567890‘,‘1995-09-09‘,‘2018-09-09‘,‘zhongguo‘,‘beijing‘,‘didu‘)"
mysql -h ${HOSTNAME} -u ${USERNAME} -P {PORT} -p${PASSWORD} ${DBNAME} -e "${insert_sql}"
let i++
done
#select data
select_sql="select count(*) from ${TABLENAME}"
mysql -h ${HOSTNAME} -P {PORT} -p${PASSWORD} -u ${USERNAME} ${DBNAME} -e "${select_sql}"

执行脚本生成mysqlslap工具需要的测试表

执行mysqlslap工具进行测试

mysqlslap --defaults-file=/etc/my.cnf --concurrency=10,20 --iterations=1 --create-schema=‘test‘ --query=‘select * from test.tb1‘ --engine=myisam,innodb --number-of-queries=2000 -uroot -p123456 -verbose

MySQL自带工具使用介绍

原文地址:http://blog.51cto.com/13214087/2139318

时间: 2024-10-13 13:34:44

MySQL自带工具使用介绍的相关文章

mysql 自带工具详解

MySQL自带工具使用介绍:1)mysql命令:mysql命令事是使用最多的命令工具了,为用户提供了一个命令行接口来操作管理MySQL的服务器.命令格式:Usage:mysql [OPTIONS][database]例:mysql -e "select user,host from user" mysqlmysql --help 可以得到相应的基础使用帮助信息-e : --execut=name :我们要执行-e后面的命令,但是并不通过mysql连接进入mysql交互界面.此参数在我们

用mysql自带工具mysqlslap对数据库进行压力测试

mysqlslap是mysql自带的工具,不需要单独安装: 参数: -concurrency 代表并发数量,多个可以用逗号隔开,concurrency=10,50,100, 并发连接线程数分别是10.50.100个并发. --engines 代表要测试的引擎,可以有多个,用分隔符隔开. --iterations 代表要运行这些测试多少次. --auto-generate-sql 代表用系统自己生成的SQL脚本来测试. --auto-generate-sql-load-type 代表要测试的是读还

(转)用mysql自带工具mysqlslap对数据库进行压力测试

http://aolens.blog.51cto.com/7021142/1901557-------用mysql自带工具mysqlslap对数据库进行压力测试 mysqlslap是mysql自带的工具,不需要单独安装: 参数: -concurrency 代表并发数量,多个可以用逗号隔开,concurrency=10,50,100, 并发连接线程数分别是10.50.100个并发. --engines 代表要测试的引擎,可以有多个,用分隔符隔开. --iterations 代表要运行这些测试多少次

2.3MySQL 自带工具使用介绍

1.mysql 首先看看"-e, --execute=name"参数,这个参数是告诉mysql,我只要执行"-e"后面的某个命令,而不是要通过mysql 连接登录到MySQL Server 上面.此参数在我们写一些基本的MySQL 检查和监控的脚本中非常有用,我个人就经常在脚本中使用到他. 如果在连接时候使用了"-E, --vertical"参数,登入之后的所有查询结果都将以纵列 显示,效果和我们在一条query 之后以"\G"

MySQL客户端 - mysql及mysqldump工具使用介绍

一.mysql使用: mysql工具是MySQL官方提供的连接工具,用户可以通过mysql连接到mysqld上进行一系列的SQL操作.mysql工具有两种模式:交互模式和命令行模式.交互模式指令需要连接到mysql服务器下达,命令行模式通过特定(-e)参数读取shell命令行传递的指令到服务器. 1.mysql客户端的命令行参数: mysql客户端的参数有很多,但是常用的只有如下几个: mysql [OPTIONS] [database] -?, --help 显示帮助信息 -e, --exec

使用mysql自带工具mysqldump进行全库备份以及source命令恢复数据库

mysql数据库提供了一个很好用的工具mysqldump用以备份数据库,下面将使用mysqldump命令进行备份所有数据库以及指定数据库 一.mysqldump一次性备份所有数据库数据 /usr/local/mysql/bin/mysqldump -u用户名 -p密码 --all-databases > /保存路径/文件名.sql 注意:以上命令直接在控制台输入即可,无须登录进入数据库操作界面 以上命令执行后,你就可以在对应路径下,找到你的备份sql文件了 二.mysqldump 一次性备份指定

数据库相关文章转载(2) MySQL自带的性能压力测试工具mysqlslap详解

PS:今天一同事问我有木有比较靠谱的mysql压力测试工具可用.其实mysql自带就有一个叫mysqlslap的压力测试工具,还是模拟的不错的.下面举例说说.mysqlslap是从5.1.4版开始的一个MySQL官方提供的压力测试工具.通过模拟多个并发客户端访问MySQL来执行压力测试,同时详细的提供了“高负荷攻击MySQL”的数据性能报告.并且能很好的对比多个存储引擎在相同环境下的并发压力性能差别.通过mysqlslap –help可以获得可用的选项,这里列一些主要的参数,更详细的说明参考官方

MySQL之IDE工具介绍及数据备份(数据库导入,导出)

MySQL之IDE工具介绍及数据备份 一.IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具 下载链接:https://pan.baidu.com/s/1bpo5mqj 二.MySQL数据备份 #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境( 如数据文件.控制文件.归档日志文件等).但不能恢复到异构系统中如Windows. #2. 逻辑备份: 备份的是建表.建库.插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低.#3. 导出表:

MySQL Study之--Mysql数据库备份工具(mysqldump)

MySQL Study之--Mysql数据库备份工具(mysqldump) 对于Mysql Database的备份方式有很多种,此次文档主要介绍mysqldump工具: mysqldump:      mysqldump工具很多方面类似相反作用的工具mysqlimport.它们有一些同样的选项.但mysqldump能够做更多的事情.它可以把整个数据库装载到一个单独的文本文件中.这个文件包含有所有重建您的数据库所需要的SQL命令.这个命令取得所有的模式(Schema,后面有解释)并且将其转换成DD