Python执行show slave status输出的两个格式
1、元组的方式
输出格式如下:
('Waiting for master to send event', '10.75.19.79', 'mysqlsync', 5580L, 60L, 'mysql-bin.000050', 300947174L, 'relay-bin.000054', 210L, 'mysql-bin.000050', 'Yes', 'Yes', '', '', '', '', '', '', 0L, '', 0L, 300947174L, 463L, 'None', '', 0L, 'No', '', '', '', '', '', 0L, 'No', 0L, '', 0L, '', '', 28585580L)
对应的python脚本:
def get_all_slave_lag(self):
for slave in self.slaves_list:
conn=MySQLdb.connect(host=slave,user=self.user,passwd=self.password,port=self.port,db=self.db)
cursor=conn.cursor()
cursor.execute("show slave status")
result=cursor.fetchall()
for row in result:
print row
self.lags.append(row[32])
cursor.close()
conn.close()
有个问题:
例如获取second_behind_master的值时候,需要考虑对应的顺序,例如5.5版本,对应的顺序为32,可能其他版本的就不一样,需要考虑版本信息。
2、字典模式输出
输出格式如下:
{'Replicate_Wild_Do_Table': '', 'Master_SSL_CA_Path': '', 'Last_Error': '', 'Until_Log_File': '', 'Seconds_Behind_Master': 0L, 'Master_User': 'mysqlsync', 'Master_Port': 5580L, 'Until_Log_Pos': 0L, 'Master_Log_File': 'mysql-bin.000050', 'Read_Master_Log_Pos': 300947174L, 'Replicate_Do_DB': '', 'Master_SSL_Verify_Server_Cert': 'No', 'Exec_Master_Log_Pos': 300947174L, 'Replicate_Ignore_Server_Ids': '', 'Replicate_Ignore_Table': '', 'Master_Server_Id': 28585580L, 'Relay_Log_Space': 463L, 'Last_SQL_Error': '', 'Relay_Master_Log_File': 'mysql-bin.000050', 'Master_SSL_Allowed': 'No', 'Master_SSL_CA_File': '', 'Slave_IO_State': 'Waiting for master to send event', 'Relay_Log_File': 'relay-bin.000054', 'Replicate_Ignore_DB': '', 'Last_IO_Error': '', 'Until_Condition': 'None', 'Replicate_Do_Table': '', 'Last_Errno': 0L, 'Master_Host': '10.75.19.79', 'Master_SSL_Key': '', 'Skip_Counter': 0L, 'Slave_SQL_Running': 'Yes', 'Relay_Log_Pos': 210L, 'Master_SSL_Cert': '', 'Last_IO_Errno': 0L, 'Slave_IO_Running': 'Yes', 'Connect_Retry': 60L, 'Last_SQL_Errno': 0L, 'Replicate_Wild_Ignore_Table': '', 'Master_SSL_Cipher': ''}
对应代码如下:
def get_all_slave_lag(self):
for slave in self.slaves_list:
conn=MySQLdb.connect(host=slave,user=self.user,passwd=self.password,port=self.port,db=self.db)
cursor=conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
cursor.execute("show slave status")
result=cursor.fetchall()
for row in result:
print row
self.lags.append(row['Seconds_Behind_Master'])
cursor.close()
conn.close()
这样比较方便且通用,不用考虑格式问题。
本例子是对应show slave status是这样使用,对于show status以及show variables 也一样处理
Python执行show slave status输出的两个格式的更多相关文章
- Python执行系统命令并获得输出的几种方法
[root@a upfc]# ./ffmpeg-linux64-v3.3.1 -i a.mp3 ffmpeg version N-86111-ga441aa90e8-static http://joh ...
- python执行linux shell管道输出内容
干净不留痕,用过都说好. echo "print 1+1" |python
- 两主机搭建MySQL主从复制后,show slave status显示:Last_IO_Error: error connecting to master ……
两台主机A.B搭建mysql主从复制关系(A为master,B为slave)后,在slave上执行show slave status,结果中显示Last_IO_Error: error connect ...
- [置顶] 两主机搭建MySQL主从复制后,show slave status显示:Last_IO_Error: error connecting to master ……
两台主机A.B搭建mysql主从复制关系(A为master,B为slave)后,在slave上执行show slave status,结果中显示Last_IO_Error: error connect ...
- mysql----show slave status \G 说明
show slave status \G 可以用来查看mysql 的复制状态,有些列名所表达的意思不太明确,现整理如下: 1. Slave_IO_State:ID线程的状态,如果master 的所有变 ...
- show master status, show slave status中的Executed_Gtid_Set
slave 如果server是slave节点,在server上执行show master staus与show slave status显示的Executed_Gtid_Set是一样的. slave也 ...
- mysql命令 show slave status\G;命令输出详解
show slave status\G; 命令输出详解 mysql> show slave status\G; *************************** . row ******* ...
- python show slave status
#!/usr/bin/env python import MySQLdbimport contextlib @contextlib.contextmanagerdef mysql(Host,Port, ...
- python slave status 2
#!/usr/bin/env python import MySQLdbimport contextlib @contextlib.contextmanagerdef mysql(Host,Port, ...
随机推荐
- c# Linq操作XML,查找节点数据
/*查找XML*/ var filePath = Server.MapPath("~/xml/sample.xml"); XDocument doc = XDocument.Loa ...
- jQuery扩展easyui.datagrid,添加数据loading遮罩效果代码
//jquery.datagrid 扩展加载数据Loading效果 (function (){ $.extend($.fn.datagrid.methods, { //显示遮罩 loading: fu ...
- oracle temporary table
oralce 有两种临时表 a.会话级临时表 b.事物级临时表 A.事物级临时表 语法 create global temporary table table_name( col1 type1, ...
- Java常见异常处理
Exception类: 在java中用类的形式对不正常情况进行了描述和封装对象,异常就是java通过面向对象的思想将问题封装成了对象. 异常发生的原因有很多,通常包含以下几大类: 用户输入了非法数据. ...
- 人工智能 tensorflow框架-->简介及安装01
简介:Tensorflow是google于2015年11月开源的第二代机器学习框架. Tensorflow名字理解:图形边中流动的数据叫张量(Tensor),因此叫Tensorflow 既 张量流动 ...
- 【转】C缺陷和陷阱学习笔记
http://www.cnblogs.com/hbiner/p/3591335.html?utm_source=tuicool&utm_medium=referral 这段时间把<C陷阱 ...
- Windows NT 之父 - David Cutler
David Cutler,大卫·卡特勒,一位传奇程序员,1988年去微软前号称硅谷最牛的内核开发人员,是VMS和Windows NT的首席设计师,被人们成为“操作系统天神”.他曾供职于杜邦.DEC等公 ...
- [翻译]欢迎来到 C# 7.1
[翻译]欢迎来到 C# 7.1 原文: Welcome to C# 7.1 在 C# 中,我们一直倾向于主要版本:捆绑了很多功能,并且不太频繁地发布.当我们谈到 C#6.0时,我们甚至还经常忽略掉后面 ...
- 读书笔记-你不知道的JS上-闭包与模块
闭包定义 当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前词法作用域之外执行. 看一段最简单的闭包代码: function foo() { var a = 2; //闭包 fun ...
- javabean 和 xml 互转
1.场景描述 将javabean对象转换为xml字符串,将xml字符串转换为javabean对象. 2.maven依赖 <dependency> <groupId>jdom&l ...