mysql-utilities 是python编写 MySQL官方版的命令行工具集,涵盖主从校验,主从创建,主从切换等等html
rpm安装 注意 尽可能不要经过yum来安装mysql-utilities,mysql-utilities 1.6.5和mysql-connector-python 8.0.12在一块儿有问题!python
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 mysql
二进制安装sql
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找不到sqlserver
解决ui
卸载原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 高版本的不兼容低版本的,这是个坑-__-spa
主从复制工具
mysqlreplicate --master=admin:admin@10.186.30.73:3307 \ --slave=admin:admin@10.186.30.58:3307 --rpl-user=rpl:rpl
--pedantic选项来确保主和从复制成功,当且仅当两个服务器具备相同的存储引擎,相同的默认存储引擎和相同的InnoDB存储引擎
主从复制检测工具
mysqlrplcheck --master=admin:admin@10.186.30.73:3307 \ --slave=admin:admin@10.186.30.58:3307 \ --show-slave-status -vv
主从复制拓扑图工具
mysqlrplshow --master=admin:admin@10.186.30.73:3307 \ --discover-slaves-login=admin:admin --verbose --recurse
主从复制管理工具
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 --master=admin:admin@10.186.30.73:3307 --discover-slaves-login=admin --candidates=admin:admin@10.186.30.58:3307
数据库库级别比较工具
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