1、mysql
mysql的功能和Oracle的sqlplus一样,它为用户提供一个命令行接口来管理Mysql服务器。
2、 mysqladmin
mysqladmin顾名思义,提供的功能都是与mysql管理相关的各种功能。如mysql server状态检查,各种统计信息的flush,创建/删除数据库,关闭Mysqlserver等。mysqladmin所能做的事情,虽然大部分可以通过mysql连接登录Mysqlserver之后来完成,但是通过mysqladmin来完成操作更简单方便。
[root@jesse mysql]# /usr/local/mysql/bin/mysqladmin -u mysql -p123 -h localhost ping mysqld is alive
[root@jesse mysql]# /usr/local/mysql/bin/mysqladmin -u mysql -p123 -h localhost status Uptime: 30611 Threads: 1 Questions: 77 Slow queries: 0 Opens: 19 Flush tables: 1 Open tables: 10 Queries per second avg: 0.2[root@jesse mysql]# /usr/local/mysql/bin/mysqladmin -u mysql -p123 -h localhost processlist
+----+-------+-----------+----+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------+-----------+----+---------+------+-------+------------------+
| 21 | mysql | localhost | | Query | 0 | | show processlist |
+----+-------+-----------+----+---------+------+-------+------------------+
上面三个简单的例子,虽然得到的信息很有限,但是对于完成一些基本的监控来说,已经足够了,此外还可以通过mysqladmin 来调用 START SLAVE 和STOP SLAVE命令来维护Repilication ,以及KILL命令来终止某个连接到mysql server的线程,等等。
3、mysqldump
mysqldump 工具其功能就是将mysqlserver 中的数据以QUERY语句的形式导出(dump)成文本文件。虽然mysqldump是作为一种逻辑备份工具为大家所认识,但是称它为QUERY生成导出工具更合适一点,因为通过mysqldump所生成的文件,全部是QUERY语句,包括数据库和表的创建语句。通过给mysqldump程序加-T选项参数,可以生成其它指定格式的文本文件,这项功能实际上是调用mysql中的“select * into OUTFILE from ...”语句实现的,也可以通过“-d --no-data” 仅仅生成结构创建的语句,当生成QUERY语句的时候,字符集设置这一项比较关键,建议每次执行Mysqldump程序的时候都通过尽量做到 “-default-charseter-set=name”显式指定字符集内容,防止以错误的字符集生成不可用的内容,mysqldump所生成的SQL文件可以通过mysql工具执行。
4、mysqlimport
mysqlimport 程序将以特定格式存放的文本数据导入指定的mysqlserver中,比如将一个标准的csv文件导入指定数据库的指定表中。mysqlimport工具实际上只是“LOAD DATA INFILE” 命令的一个包装实现。
5、mysqlbinlog
mysqlbinlog 程序的主要功能就是分析mysqlserver所产生的二进制日志即binlog,当我们希望通过之前备份的binlog做一些时间之类的恢复时,mysqlbinlog可以帮助找出恢复操作须要做哪些事情。通过mysqlbinlog,可以把binlog中指定时间段或指定日志起始和结束位置的内容解释成query语句,并导出到指定的文件中,在解释的过程中,还可以通过指定数据库名称来过滤输出内容。
6、mysqlcheck
mysqlcheck工具程序可以检查、修复、分析和优化mysql server中的表,但并不是所有的存储引擎都支持这四项功能,像Innodb就不支持修复功能。实际上,mysqlcheck程序的四项功能都可以通过mysql连接到mysql server之后来实现。
7、myisamchk
myisamchk的功能有点类似“mysql -c/-r”,可以检查和修复MyISAM存储引擎的表,但只对myisam存储引擎的索引文件有效,不用登陆mysqlserver即可完成操作。
8、myisampack
对myisam表进行压缩处理,以缩减占用的存储空间,一般主要用在归档备份的场景下,而且压缩后的myisam表会变成只读,不能进行任何修改操作。当我们归档备份某些历史数据表,希望该表能够提供高效的查询服务时,就可以通过myisam工具对myIsam表进行压缩。素
虽然更换成archive存储引擎也能够将变成只读的压缩表,但是archive表是不支持索引的,而压缩后的myisam表任然可以使用其索引。
9、mysqlhotcopy
mysqlhotcopy 和其他的客户端工具程序不太一样的地方是,它不是C/C++程序编写的,而是一个perl脚本程序,仅能在unix/linux 坏境下使用。主要功能是对mysql中的myisam存储引擎的表进行在线备份操作,其备份操作实际上就是通过数据库中的表进行加锁,然后复制其结构,数据和索引文件来完成的,也可以通过指定“-noindices”告诉mysqlhotcopy不须要备份索引文件。
10、其他工具
除了上面介绍的这些工具以外,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,通过给定匹配模式来中止客户端连接线程的Mysql_zap,查看错误信息的perror,文本替换工具replace等一系列工具程序可供我们使用,如果你希望在mysql源代码的基础上做一些自己的修改,如修改mysisam存储引擎的时候,可以利用Myisamlog来进行跟踪分析Myisam的log.