利用Python来检查MySQL的主从复制,有一个注意点是,cur.execute("show slave status;") 不能用cur.execute("show slave status\G;")
result = cur.fetchall()
返回的是个二元数组
result[0] 返回时整个show slave status 状态信息。
result[0][n] 返回具体的某一项。
python代码如下:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import MySQLdb, socket, paramiko,sys, os,datetime
def final_check_mysql ():
status = True
try:
conn=MySQLdb.connect(host='192.168.3.10',user='root',passwd='Xp29at5F37',db='test')
cur=conn.cursor()
cur.execute("show slave status;")
result = cur.fetchall()
io_thread= result[0][10]
sql_thread= result[0][11]
print io_thread,sql_thread
cur.close()
conn.close()
except Exception,e:
print Exception,":",e
status = True
try:
if io_thread == "Yes" and sql_thread == "Yes":
print 'MySQL master/slave replication status is successfully'
else:
print 'MySQL Master/Slave replication fail,Please check it'
status = False
except Exception,e:
print Exception,":",e
#return status
go=final_check_mysql()
MySQL主从复制数据一致性校验和修复方法及自动化实现
MySQL主从复制,读写分离(mysql-proxy)及双主结构完整构建过程
CentOS搭建MySQL主从复制,读写分离