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