2.3MySQL 自带工具使用介绍

一、mysqlhtml

  首先看看“-e, --execute=name”参数,这个参数是告诉mysql,我只要执行“-e”后
面的某个命令,而不是要经过mysql 链接登陆到MySQL Server 上面。此参数在咱们写一些
基本的MySQL 检查和监控的脚本中很是有用,我我的就常常在脚本中使用到他。mysql

  若是在链接时候使用了“-E, --vertical”参数,登入以后的全部查询结果都将以纵列c++

显示,效果和咱们在一条query 以后以“\G”结尾同样,这个参数的使用场景可能不是特别
多。
sql

  “-H, --html”与“-X, --xml”这两个参数颇有意思的,在启用这两个参数以后,select
出来的全部结果都会按照“Html”与“Xml”格式来输出,在有些场合之下,好比但愿Xml
或者Html 文件格式导出某些报表文件的时候,是很是方便的。数据库

  “--prompt=name”参数对于作运维的人来讲是一个很是重要的参数选项,运维

“sky@localhost : test 04:25:45>”函数

  “--tee=name”参数也是对运维人员很是有用的参数选项,用来告诉mysql,将全部输
入和输出内容都记录进文件。在咱们一些较大维护变动的时候,为了方便被查,最好是将整
个操做过程的全部输入和输出内容都保存下来。有了“--tee=name”参数,就不再用经过
copy 屏幕来保存操做过程了。工具

  “-U, --safe-updates”,“--select_limit=#”和“--max_join_size=#”三个参数都
是出于性能相关考虑的参数。使用“-U, --safe-updates”参数以后,将禁止全部不能使用
索引的update 和delete 操做的请求,“--select_limit=#”的使用前提是有“-U, --safeupdates”
参数,功能是限制查询记录的条数,“--max_join_size=#”也须要与“-U, --safeupdates”
一块儿使用,限制参与join 的最大记录数。性能

  “--show-warnings”参数做用是在执行完每一条query 以后都会自动执行一次“show
warnings”,显示出最后一次warning 的内容。测试

mysql 的所
  有参数选项均可以写在MySQL Server 启动参数文件(my.cnf)的[mysql]参数group 中,还
有部分链接选项参数会从[client]参数group 中读取,这样不少参数就能够不用在每次执行
mysql 的时候都手工输入,而由mysql 程序本身自动从my.cnf 文件load 这些参数。

  若是读者朋友但愿对mysql 其余参数选项或者mysql 的其余更国有图有更深刻的了解,
能够经过MySQL 官方参考手册查阅,也能够经过执行“mysql --help”获得帮助信息以后通
过自行实验来作进一步的深入认识。固然若是您是一位基本能看懂c 语言的朋友,那么您完
全能够经过mysql 程序的源代码来发现其更多有趣的内容。

二、mysqladmin
Usage: mysqladmin [OPTIONS] command command ...
  mysqadmin,顾名思义,提供的功能都是与MySQL 管理相关的各类功能。如MySQL Server
状态检查,各类统计信息的flush,建立/删除数据库,关闭MySQL Server 等等。mysqladmin
所能作的事情,虽然大部分均可以经过mysql 链接登陆上MySQL Server 以后来完成,可是
大部分经过mysqladmin 来完成操做会更简单更方便。这里我将介绍一下本身常用到的
几个经常使用功能:

  ping 命令能够很容易检测MySQL Server 是否还能正常提供服务
sky@sky:~# mysqladmin -u sky -ppwd -h localhost ping
mysqld is alive

  status 命令能够获取当前MySQL Server 的几个基本的状态值:
sky@sky:~# mysqladmin -u sky -ppwd -h localhost status
Uptime: 20960 Threads: 1 Questions: 75 Slow queries: 0 Opens: 15 Flush
tables: 1 Open tables: 9 Queries per second avg: 0.3

  processlist 获取当前数据库的链接线程信息:
sky@sky:~# mysqladmin -u sky -ppwd -h localhost processlist
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+----+---------+------+-------+------------------+
| 48 | sky | localhost | | Query | 0 | | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+

  上面的这三个功能是我在本身的一些简单监控脚本中常用到的,虽然获得的信息还
是比较有限,可是对于完成一些比较基本的监控来讲,已经足够胜任了。此外,还能够经过
mysqladmin 来start slave 和stop slave,kill 某个链接到MySQL Server 的线程等等。

三、mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]

  mysqldump 这个工具我想大部分读者可能都比较熟悉了,其功能就是将MySQL Server
中的数据以SQL 语句的形式从数据库中dump 成文本文件。虽然mysqldump 是作为MySQL 的
一种逻辑备份工具为你们所认识,但我我的以为称他为SQL 生成导出工具更合适一点,由于
经过mysqldump 所生成的文件,所有是SQL 语句,包括数据库和表的建立语句。固然,经过
给mysqldump 程序加“-T”选项参数以后,能够生成非SQL 形式的指定给是的文本文件。这
个功能其实是调用了MySQL 中的“select * into OUTFILE from ...”语句而实现。也可
以经过“-d,--no-data”仅仅生成结构建立的语句。在声称SQL 语句的时候,字符集设置这
一项也是比较关键的,建议每次执行mysqldump 程序的时候都经过尽可能作到“--defaultcharacter-
set=name”显式指定字符集内容,以防止以错误的字符集生成不可用的内容。
mysqldump 所生成的SQL 文件能够经过mysql 工具执行。

四、mysqlimport
Usage: mysqlimport [OPTIONS] database textfile ...
  mysqlimport 程序是一个将以特定格式存放的文本数据(如经过“select * into
OUTFILE from ...”所生成的数据文件)导入到指定的MySQL Server 中的工具程序,好比
将一个标准的csv 文件导入到某指定数据库的指定表中。mysqlimport 工具实际上也只是
“load data infile”命令的一个包装实现。

五、mysqlbinlog
Usage: mysqlbinlog [OPTIONS] log-files
  mysqlbinlog 程序的主要功能就是分析MySQL Server 所产生的二进制日志(也就是大
家所熟知的binlog)。当咱们但愿经过以前备份的binlog 作一些指定时间之类的恢复的时
候,mysqlbinlog 就能够帮助咱们找到恢复操做须要作哪些事情。经过mysqlbinlog,咱们
能够解析出binlog 中指定时间段或者指定日志起始和结束位置的内容解析成SQL 语句,并
导出到指定的文件中,在解析过程当中,还能够经过指定数据库名称来过滤输出内容。

六、mysqlcheck
Usage: mysqlcheck [OPTIONS] database [tables]
OR mysqlcheck [OPTIONS] --databases DB1 [DB2 DB3...]
OR mysqlcheck [OPTIONS] --all-databases

  mysqlcheck 工具程序能够检查(check),修复(repair),分析( analyze)和优化
(optimize)MySQL Server 中的表,但并非全部的存储引擎都支持这里全部的四个功能,
像Innodb 就不支持修复功能。实际上,mysqlcheck 程序的这四个功能均可以经过mysql 连
接登陆到MySQL Server 以后来执行相应命令完成彻底相同的任务。

七、myisamchk
Usage: myisamchk [OPTIONS] tables[.MYI]
  功能有点相似“mysqlcheck -c/-r”,对检查和修复MyISAM 存储引擎的表,但只能对
MyISAM 存储引擎的索引文件有效,并且不用登陆链接上MySQL Server 便可完成操做。

 

八、myisampack
Usage: myisampack [OPTIONS] filename ...
  对MyISAM 表进行压缩处理,以缩减占用存储空间,通常主要用在归档备份的场景下,
并且压缩后的MyISAM 表会变成只读,不能进行任何修改操做。当咱们但愿归档备份某些历
史数据表,而又但愿该表可以提供较为高效的查询服务的时候,就能够经过myisampack 工
具程序来对该MyISAM 表进行压缩,由于即便虽然更换成archive 存储引擎也可以将表变成
只读的压缩表,可是archive 表是没有索引支持的,而经过压缩后的MyISAM 表仍然可使
用其索引。

九、mysqlhotcopy
Usage: mysqlhotcopy db_name[./table_regex/] [new_db_name | directory]
  mysqlhotcopy 和其余的客户端工具程序不太同样的是他不是c(或者c++)程序编写的,
而是一个perl 脚本程序,仅能在Unix/Linux 环境下使用。他的主要功能就是对MySQL 中
的MyISAM 存储引擎的表进行在线备份操做,其备份操做实际上就是经过对数据库中的表进
行加锁,而后复制其结构,数据和索引文件来完成备份操做,固然,也能够经过指定“--
noindices”告诉mysqlhotcopy 不须要备份索引文件。

十、其余工具  除了上面介绍的这些工具程序以外,MySQL 还有自带了其余大量的工具程序,如针对离线Innodb 文件作checksum 的innochecksum,转换mSQL C API 函数的msql2mysql,dumpMyISAM 全文索引的myisam_ftdump,分析处理slowlog 的mysqldumpslow,查询mysql相关开发包位置和include 文件位置的mysql_config, 向MySQL AB 报告bug 的mysqlbug,测试套件mysqltest 和mysql_client_test , 批量修改表存储引擎类型的mysql_convert_table_format, 能从更新日志中提取给定匹配规则的query 语句的mysql_find_rows,更改MyIsam 存储引擎表后缀名的mysql_fix_extensions,修复系统表的mysql_fix_privilege_tables,查看数据库相关对象结构的mysqlshow,MySQL 升级工具mysql_upgrade,经过给定匹配模式来kill 客户端链接线程的mysql_zap,查看错误号信息的perror,文本替换工具replace,等等一系列工具程序可供咱们使用。若是您但愿在MySQL源代码的基础上作一些本身的修改,如修改MyISAM 存储引擎的时候,能够利用myisamlog来进行跟踪分析MyISAM 的log。

相关文章
相关标签/搜索