利用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()