
1.7 MySQL实用工具
在MySQL安装目录下的bin目录中存放了很多应用程序,这些应用程序都是MySQL的工具集。本节将介绍其中最实用的5个工具,分别是mysql、mysqladmin、mysqlshow、mysqlbinlog和perror。
1.7.1 查看工具集
查看MySQL系统自带工具集的方法很简单,只需找到MySQL数据库的安装路径下并打开bin目录即可看到,如图1-28所示。

图1-28 bin文件夹下的命令
从图1-28中可以看出,MySQL中自带了多个命令工具,通过执行这些命令可以实现不同的操作,大多数的操作都是通过MySQL命令来实现的。另外,mysqladmin命令主要用来对数据库做一些简单的操作,以及显示服务器状态等。如表1-1所示对图1-28中的实用工具进行了简单说明。
表1-1 MySQL中的常用命令工具

技巧
为了方便在命令下使用这些工具,可以将MySQL 的bin 目录添加到系统的path 变量中,例如,本示例中的路径是“D:\Program Files\MySQL\MySQL Server 5.6\bin”。
1.7.2 mysql工具
在所有工具集中最常用的就是mysql,它其实是一个MySQL的客户端,支持交互式和非交互式使用。交互使用时查询结果采用ASCII表格式。当采用非交互式(例如,用作过滤器)模式时,结果为Tab分隔符格式。
mysql工具基本语法如下:
mysql [options] [database]
执行mysql或“mysql -?”语句可查看详细帮助信息,如表1-2所示对帮助信息中常用的一些选项进行了介绍。
表1-2 mysql工具常用选项

例如,直接在DOS窗口中执行mysql –V命令查看版本信息,输出结果如下。
C:\Users\Administrator>mysql -V mysql Ver 14.14 Distrib 5.6.19, for Win32 (x86)
【范例10】
使用mysql工具以root身份登录到MySQL服务器,并运行status命令查看当前MySQL服务器的状态,执行语句如下。
C:\Users\Administrator>mysql -u root -p
上述语句执行后会要求用户输入root的登录密码,如果连接成功将显示欢迎信息,并显示当前MySQL的版本号,同时显示有mysql>提示符表示进入命令行状态。此时输入“status”表示运行status命令,将看到返回结果,如图1-29所示。

图1-29 使用mysql工具查看服务器状态
1.7.3 mysqladmin工具
mysqladmin工具主要用来对数据库做一些简单操作,以及显示服务器状态等。mysqladmin的基本语法格式如下:
mysqladmin [option] command [command option] command …
直接在DOS窗口中执行mysqladmin语句或者输入“mysqladmin -?”可以查看详细语法及参数信息。
1.mysqladmin功能选项
mysqladmin的帮助信息包括三部分,第一部分为mysqladmin的功能选项,如表1-3所示对常用的选项进行了说明。
表1-3 mysqladmin的功能选项

【范例11】
例如,要查看当前mysqladmin的版本可用-V选项,执行结果如下。
C:\Users\Administrator>mysqladmin -V mysqladmin Ver 8.42 Distrib 5.6.19, for Win32 on x86
2.mysqladmin命令选项
mysqladmin帮助信息的第二部分表示mysqladmin的相关变量,这里不再对这些变量进行说明。第三部分表示mysqladmin可以执行的相关服务器命令。如表1-4所示针对这些命令进行了详细说明。
表1-4 mysqladmin的命令选项

【范例12】
使用mysqladmin工具连接到MySQL并执行version命令查看MySQL数据库版本。执行结果如下。
C:\Users\Administrator>mysqladmin -u root -p version Enter password: ****** mysqladmin Ver 8.42 Distrib 5.6.19, for Win32 on x86 Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Server version 5.6.19 Protocol version 10 Connection localhost via TCP/IP TCP port 3306 Uptime: 2 hours 2 min 39 sec Threads: 1 Questions: 2 Slow queries: 0 Opens: 67 Flush tables: 1 Open tables: 60 Queries per second avg: 0.000
【范例13】
使用mysqladmin工具连接到MySQL并执行processlist命令查看MySQL中的活跃线程列表。执行结果如下。
C:\Users\Administrator> mysqladmin -u root -p processlist Enter password: ****** +----+-------+---------+------+---------+--------+-------+----------+ | Id | User | Host | db | Command | Time | State | Info | +----+-------+---------+------+---------+--------+-------+----------+ | 2 | root | localhost:57182 | | Query | 0 | init |show processlist | +-----+------+---------+------+---------+--------+-------+----------+ Uptime: 7512 Threads: 1 Questions: 5 Slow queries: 0 Opens: 67 Flush tables: 1 Open tables: 60 Queries per second avg: 0.000
无论是在范例12还是范例13中,命令执行完毕后都会输出状态信息,例如MySQL服务器运行的秒数,如下对输出的各项信息进行了说明。
(1)Uptime:表示MySQL服务器已经运行的秒数。
(2)Threads:活动线程(客户)的数量。
(3)Questions:从MySQL启动以来客户问题(查询)的数量。
(4)Slow Queries:执行时间超过long_query_time秒的查询的数量。
(5)Opens:服务器已经打开的数据库表的数量。
(6)Flush tables:服务器已经执行的flush…、refresh和reload命令的数量。
(7)Open tables:目前打开的表的数量。
(8)Queries per second avg:执行平均用时秒数。
1.7.4 mysqlshow工具
mysqlshow工具可以快速地查找存在哪些数据库、数据库中的表,以及表中的列或者索引。基本语法如下:
mysqlshow[options] [db_name [tal_name [col_name]]]
在上述所示的语法中,如果没有指定数据库,则显示所有匹配的数据库;如果没有指定数据库表,则显示数据库中所有匹配的表;如果没有给出列,则显示表中所有匹配的列和列类型。
mysqlshow命令的常用选项及说明如表1-5所示。
表1-5 mysqlshow选项

【范例14】
下面通过几个语句演示mysqlshow工具的简单应用。
(1)使用mysqlshow工具连接到MySQL,如果不带其他选项默认将显示出MySQL上的所有数据库,执行结果如下。
C:\Users\Administrator >mysqlshow -u root -p Enter password: ****** +----------------------------+ | Databases | +----------------------------+ | information_schema | | mysql | | performance_schema | | sakila | | test | | world | +----------------------------+
(2)如果要查看world数据库下的所有数据表名称,只需在上述命令的基础上添加world即可,执行结果如下。
C:\Users\Administrator>mysqlshow world -u root -p Enter password: ****** Database: world +----------------------------+ | Tables | +----------------------------+ | city | | country | | +----------------------------+
(3)如果要查看world数据库下的所有数据表中包含的行数,只需在上述命令的基础上为world添加-v选项即可,执行结果如下。
C:\Users\Administrator>mysqlshow world -v -u root -p Enter password: ****** Database: world +-------------------------+----------+ | Tables | Columns| +-------------------------+----------+ | city | 5 | | country | 15 | | countrylanguage | 4 | +-------------------------+----------+ 3 rows in set..
(4)如果希望查看world数据库city表中字段的详细信息,只需在world和-v之间添加city即可,执行结果如图1-30所示。

图1-30 查看city表字段信息
1.7.5 mysqlbinlog工具
MySQL数据库将生成的日志文件写成二进制格式,如果要以文本格式查看这些文件可以使用mysqlbinlog工具。语法如下:
mysqlbinlog [options] log-files…
执行mysqlbinlog或“mysqlbinlog -?”命令可以查看它的帮助信息。该命令显示的帮助信息包括两部分,第一部分显示mysqlbinlog的功能选项,常用选项如表1-6所示;第二部分显示了mysqlbinlog命令的相关变量。
表1-6 mysqladmin执行的功能选项

通常情况下,可以使用mysqlbinlog工具直接读取二进制日志文件并将它们用于本地MySQL服务器,也可以使用--read-from-remote-server选项从远程服务器读取二进制日志。当读取远程二进制日志时,可以通过连接参数选项来指示如何连接服务器,但是它们经常被忽略掉,除非还指定了--read-from-remote-server选项。还可以使用mysqlbinlog来读取在复制过程中从服务器所写的中继日志文件,中继日志格式与二进制日志文件相同。
【范例15】
例如,下面执行mysqlbinlog工具输出binlog.000003中包含的所有语句以及其他信息。如果指定的文件不存在,则会输入提示信息,提示该文件并不存在,结果如下。
C:\Users\Administrator>mysqlbinlog binlog.000003 /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_ TYPE=0*/; DELIMITER /*!*/; mysqlbinlog: File 'binlog.000003' not found (Errcode: 2 - No such file or directory) DELIMITER ; # End of log file ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
提示
本节只是简单演示了mysqlbinlog命令的使用,关于该命令查看二进制文件的信息还会在后面进行介绍,这里不再进行具体解释。
1.7.6 perror工具
对于大多数系统错误,除了内部文本信息之外,MySQL还会按下面的风格显示系统错误代码:
message…(errorno:#) message…(Errcode:#)
通过检查系统文档或使用perror工具,可以检查错误代码的意义。perror为系统错误代码或存储引擎(表处理)错误代码打印其描述信息。其基本语法如下:
perror [options] errorcode
【范例16】
直接执行perror工具显示的错误信息如下:
C:\Users\Administrator>perror 13 64 OS error code 13: Permission denied Win32 error code 13: 数据无效。 Win32 error code 64: 指定的网络名不再可用。
与前面几个工具相比,perror工具要简单得多,这一点从帮助信息中就可以看出来。执行perror工具查看帮助信息,输出的帮助信息如下:
C:\Users\Administrator>perror perror Ver 2.11, for Win32 (x86) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Usage: perror [OPTIONS] [ERRORCODE [ERRORCODE...]] -?, --help Displays this help and exits. -I, --info Synonym for --help. -s, --silent Only print the error message. -v, --verbose Print error code and message (default). (Defaults to on; use --skip-verbose to disable.) -V, --version Displays version information and exits. Variables (--variable-name=value) and boolean options {false|true} Value (after reading options) --------------------------------- --------------------------------- verbose true