mysql-utilities 是python编写 MySQL官方版的命令行工具集,涵盖主从校验,主从建立,主从切换等等
安装
rpm安装
注意 尽量不要通过yum来安装mysql-utilities,mysql-utilities 1.6.5和mysql-connector-python 8.0.12在一起有问题!
mysql5.6
rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
卸载
yum -y remove mysql-community-release
mysql5.7
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-8.noarch.rpm
yum install mysql-utilities.noarch
mysql5.7 yum源 还会安装依赖mysql-connector-python 8.0.12-1.el7
二进制安装
yum install mysql-connector-python
wget https://cdn.mysql.com/archives/mysql-utilities/mysql-utilities-1.6.5.tar.gz
tar -zxf mysql-utilities-1.6.5.tar.gz
cd mysql-utilities-1.6.5
python ./setup.py build
python ./setup.py install
通过tar.gz安装和yum安装mysql-utilities出现错误
可能模块没有在搜索路径中
export PYTHONPATH=$PYTHONPATH:/root/mysql-utilities-1.6.5/mysql/utilities/common/tools
试了也不行
安装mysql5.6 yum源以rpm形式安装的mysql-utilities不会报module找不到
解决
卸载原mysql-connector-python8.0版本
yum -y remove mysql-connector-python
并下载安装mysql-connector-python-2.1.7
rpm -Uvh https://cdn.mysql.com//Downloads/Connector-Python/mysql-connector-python-2.1.7-1.el7.x86_64.rpm
mysqldbcompare --version
MySQL Utilities mysqldbcompare version 1.6.5
License type: GPLv2
当时还在纠结为什么安装mysql5.7 yum源在以yum安装mysql-utilities和以tar.gz形式来安装mysql-utilites
两种方式该有的/mysql/utilities/common和tools.py 下的check_python_version都有了,而安装mysql5.6
yum源不报错,查看 mysql-connector-python版本时才发现两者的版本不一样,在MySQL中 mysql-co
nnector-python 8.0.12-1.el7 高版本的不兼容低版本的,这是个坑-__-
mysqlreplicate
主从复制工具
mysqlreplicate --master=admin:admin@10.186.30.73:3307 \
--slave=admin:admin@10.186.30.58:3307 --rpl-user=rpl:rpl
--pedantic选项来确保主和从复制成功,当且仅当两个服务器具有相同的存储引擎,相同的默认存储引擎和相同的InnoDB存储引擎
mysqlrplcheck
主从复制检测工具
mysqlrplcheck --master=admin:admin@10.186.30.73:3307 \
--slave=admin:admin@10.186.30.58:3307 \
--show-slave-status -vv
mysqlrplshow
主从复制拓扑图工具
mysqlrplshow --master=admin:admin@10.186.30.73:3307 \
--discover-slaves-login=admin:admin --verbose --recurse
mysqlrpladmin
主从复制管理工具
mysqlrpladmin --master=admin:admin@10.186.30.73:3307 \
--slave=admin:admin@10.186.30.58:3307 Health
mysqlrpladmin --master=admin:admin@10.186.30.73:3307 \
--slave=admin:admin@10.186.30.58:3307 gtid
mysqlrpladmin --master=admin:admin@10.186.30.73:3307 \
--slave=admin:admin@10.186.30.58:3307 reset
mysqlrpladmin -vv --master=admin:admin@10.186.30.73:3307 \
--slave=admin:admin@10.186.30.58:3307 \
--new-master=admin:admin@10.186.30.58:3307 --demote-master switchover
mysqlrpladmin -vv --slave=admin:admin@10.186.30.58:3307 failover
mysqlrpladmin 1.3.6对mysql5.7 会出现错误
# Checking privileges.
ERROR: Query failed. 1054 (42S22): Unknown column 'password' in 'field list'
mysqlfailover
主从切换工具
mysqlfailover --master=admin:admin@10.186.30.73:3307 --discover-slaves-login=admin --candidates=admin:admin@10.186.30.58:3307
mysqldbcompare
数据库库级别比较工具
mysqldbcompare --server1=admin:admin@10.186.30.73:3307 --server2=admin:admin@10.186.30.58:3307 --changes-for=server2 --difftype=sql --run-all-tests test
详细介绍
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 审计日志过滤工具
参考:
https://dev.mysql.com/doc/workbench/en/wb-mysql-utilities.html