MySQL Utilities 是一组基于python语言编写的python库的命令行实用工具集,依赖于python 2.6。该工具提供了MySQL数据库运维工程中常用的一些工具,诸如克隆、复制、比较、差异、导出、导入、安装、配置、索引、磁盘查看等等。有了这个工具包,就好比那些个神医大夫,不管大病小病,先去搞个化验,搞个CT,你也可以当华佗。MySQL Utilities提供了各种平台的软件包,如果没有找到对应自己平台的包,可以通过源码进行编译安装。本文主要描述MySQL Utilities安装以及各个工作功能初步描述。
一、MySQL Utilities功能及组件
Binary Log Operations(二进制日志操作)
mysqlbinlogmove 二进制日志移动
mysqlbinlogpurge 二进制日志清理
mysqlbinlogrotate 二进制日志老化工具
Database Operations(数据库操作)
mysqldbexport 数据导出
mysqldbimport 数据导入
mysqldbcopy 库级别数据库复制
mysqldiff 数据库对象级别比较工具
mysqldbcompare 数据库库级别比较工具
General Operations(通用用的操作)
mysqldiskusage 磁盘空间查看
mysqlfrm 恢复故障表.frm文件
mysqluserclone 用户克隆工具
mysqluc Utilities帮助工具
mysqlindexcheck 索引检测工具
mysqlmetagrep 元数据过滤器
mysqlprocgrep 进程搜索及清理工具
High Availability Operations(高可用)
mysqlreplicate 主从复制工具
mysqlrpladmin 主从复制管理工具
mysqlrplcheck 主从复制检测工具
mysqlrplms 主从多元复制工具
mysqlrplshow 主从复制拓扑图工具
mysqlrplsync 主从复制同步工具
mysqlfailover 主从failover工具
mysqlslavetrx 从库事务跳过工具
Server Operations(服务器操作)
mysqlserverinfo 服务器信息查看工具
mysqlserverclone 服务器克隆工具
Specialized Operations(特殊操作)
mysqlauditadmin 审计管理工具
mysqlauditgrep 审计日志过滤工具
二、安装需求及下载地址
需求
Python 2.6
MySQL Connector/Python 连接器
下载地址:
http://dev.mysql.com/downloads/utilities/
三、安装示例
###本次安装使用1.6.4版本,安装前,需要先安装mysql到python连接器
# cat /etc/redhat-release
CentOS release 6.7 (Final)
# rpm -Uvh mysql-connector-python-2.1.4-1.el6.x86_64.rpm
# rpm -Uvh mysql-utilities-1.6.4-1.el6.noarch.rpm
###如果没有安装连接器,则收到如下错误提示
# rpm -Uvh mysql-utilities-1.6.4-1.el6.noarch.rpm
warning: mysql-utilities-1.6.4-1.el6.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
mysql-connector-python >= 2.0.0 is needed by mysql-utilities-1.6.4-1.el6.noarch
###查看安装后生成的文件
# rpm -ql mysql-utilities-1.6.4-1.el6|grep "/usr/bin"
/usr/bin/mysqlauditadmin
/usr/bin/mysqlauditgrep
/usr/bin/mysqlbinlogmove
/usr/bin/mysqlbinlogpurge
/usr/bin/mysqlbinlogrotate
/usr/bin/mysqldbcompare
/usr/bin/mysqldbcopy
/usr/bin/mysqldbexport
/usr/bin/mysqldbimport
/usr/bin/mysqldiff
/usr/bin/mysqldiskusage
/usr/bin/mysqlfailover
/usr/bin/mysqlfrm
/usr/bin/mysqlgrants
/usr/bin/mysqlindexcheck
/usr/bin/mysqlmetagrep
/usr/bin/mysqlprocgrep
/usr/bin/mysqlreplicate
/usr/bin/mysqlrpladmin
/usr/bin/mysqlrplcheck
/usr/bin/mysqlrplms
/usr/bin/mysqlrplshow
/usr/bin/mysqlrplsync
/usr/bin/mysqlserverclone
/usr/bin/mysqlserverinfo
/usr/bin/mysqlslavetrx
/usr/bin/mysqluc
/usr/bin/mysqluserclone
四、获取帮助
1、通过mysqluc获取帮助
###可以通过调用mysqluc命令行工具来获取这些工具的帮助信息
### mysqluc提供一个自带的命令行提示符窗口,在这个窗口下也可以完成相应的命令操作
[root@node1 ~]# mysqluc
Launching console ...
Welcome to the MySQL Utilities Client (mysqluc) version 1.6.4
Copyright (c) 2010, 2016 Oracle and/or its affiliates. All rights reserved.
This is a release of dual licensed MySQL Utilities. For the avoidance of
doubt, this particular copy of the software is released
under the version 2 of the GNU General Public License.
MySQL Utilities is brought to you by Oracle.
Type 'help' for a list of commands or press TAB twice for list of utilities.
mysqluc> help
Command Description
---------------------- ---------------------------------------------------
help utilities Display list of all utilities supported.
help <utility> Display help for a specific utility.
show errors Display errors captured during the execution of the
utilities.
clear errors clear captured errors.
show last error Display the last error captured during the
execution of the utilities
help | help commands Show this list.
exit | quit Exit the console.
set <variable>=<value> Store a variable for recall in commands.
show options Display list of options specified by the user on
launch.
show variables Display list of variables.
<ENTER> Press ENTER to execute command.
<ESCAPE> Press ESCAPE to clear the command entry.
<DOWN> Press DOWN to retrieve the previous command.
<UP> Press UP to retrieve the next command in history.
<TAB> Press TAB for type completion of utility, option,
or variable names.
<TAB><TAB> Press TAB twice for list of matching type
completion (context sensitive).
###查看utilities包中所有的命令行工具
mysqluc> help utilities
Utility Description
----------------- --------------------------------------------------------
mysqlauditadmin audit log maintenance utility
mysqlauditgrep audit log search utility
mysqlbinlogmove binary log relocate utility
mysqlbinlogpurge purges unnecessary binary log files
mysqlbinlogrotate rotates the active binary log file
mysqldbcompare compare databases for consistency
mysqldbcopy copy databases from one server to another
mysqldbexport export metadata and data from databases
mysqldbimport import metadata and data from files
mysqldiff compare object definitions among objects where the
difference is how db1.obj1 differs from db2.obj2
mysqldiskusage show disk usage for databases
mysqlfailover automatic replication health monitoring and failover
mysqlfrm show CREATE TABLE from .frm files
mysqlgrants display grants per object
mysqlindexcheck check for duplicate or redundant indexes
mysqlmetagrep search metadata
mysqlprocgrep search process information
mysqlreplicate establish replication with a master
mysqlrpladmin administration utility for MySQL replication
mysqlrplcheck check replication
mysqlrplms establish multi-source replication
mysqlrplshow show slaves attached to a master
mysqlrplsync replication synchronization checker utility
mysqlserverclone start another instance of a running server
mysqlserverinfo show server information
mysqlslavetrx skip transactions on slaves
mysqluserclone clone a MySQL user account to one or more new users
###也可直接在mysqluc提示符下输入 help command 来获取对应命令的帮助信息,如下
mysqluc> help mysqlauditadmin
Usage: mysqlauditadmin --server=user:pass@host:port --show-options
# Author : Leshami
# Blog : http://blog.csdn.net/leshami
mysqlauditadmin - audit log maintenance utility
Options:
Option Description
------------------------- ------------------------------------------------
--version show program's version number and exit
--help display this help message and exit
--license display program's license and exit
--server=SERVER connection information for the server in the
form:
<user>[:<password>]@<host>[:<port>][:<socket>]
or <login-path>[:<port>][:<socket>] or <config-
path>[<[group]>].
--audit-log-name=LOG_NAME full path and file name for the audit log file.
Used for stats and copy options.
--show-options display the audit log system variables.
--remote-login=RLOGIN user name and host to be used for remote login
for copying log files. Format:
<user>:<host_or_ip> Password will be prompted.
--file-stats display the audit log file statistics.
--copy-to=COPY_LOCATION the location to copy the audit log file
specified. The path must be locally accessible
for the current user.
--value=VALUE value used to set variables based on the command
specified. See --help for list per command.
--ssl-ca=SSL_CA path to a file that contains a list of trusted
SSL CAs.
--ssl-cert=SSL_CERT name of the SSL certificate file to use for
establishing a secure connection.
--ssl-key=SSL_KEY name of the SSL key file to use for establishing
a secure connection.
--ssl=SSL specifies if the server connection requires use
of SSL. If an encrypted connection cannot be
established, the connection attempt fails. By
default 0 (SSL not required).
-v, --verbose control how much information is displayed. e.g.,
-v = verbose, -vv = more verbose, -vvv = debug
Available Commands: copy - copy the audit log to
a locally accessible path policy - set the audit
log policy Values = ALL, NONE, LOGINS, QUERIES,
DEFAULT rotate - perform audit log rotation
rotate_on_size - set the rotate log size limit
for auto rotation Values = 0, 4294967295
2、直接在shell提示符下获取命令帮助
###如下示例
[root@node1 ~]# mysqlfailover --help|head
MySQL Utilities mysqlfailover version 1.6.4
License type: GPLv2
Usage: mysqlfailover --master=root@localhost --discover-slaves-login=root
--candidates=root@host123:3306,root@host456:3306
mysqlfailover - automatic replication health monitoring and failover
Options:
--version show program's version number and exit
--help display this help message and exit
--license display program's license and exit
3、基于Linux man获取命令帮助
###如下示例
root@node1 ~]# man mysqlfailover
MYSQLFAILOVER(1) MySQL Utilities MYSQLFAILOVER(1)
NAME
mysqlfailover - Automatic replication master failover
SYNOPSIS
mysqlfailover [options]