#!/opt/local/bin/python2.6 import os import ybinlogp log = os.open('/nail/home/evan/mysql-bin.000007', os.O_RDONLY) binlog = ybinlogp.binlog(log) for entry in binlog: if entry.query: print ('query %s, %s' % (entry.query.database, entry.query.statement)) elif entry.rotate: print ('rotate %d, %s' % (entry.rotate.next_position, entry.rotate.next_file)) elif entry.xid: print ('xid %d' % (entry.xid.id)) elif entry.rand: print ('rand %d %d' % (entry.rand.seed_1, entry.rand.seed_2)) elif entry.format_description: print ('description %d %d %s' % (entry.format_description.format_version, entry.format_description.create_timestamp, entry.format_description.server_version)) elif entry.intvar: print ('intvar %d = %d' % (entry.intvar.type, entry.intvar.value))
#!/opt/local/bin/python2.6 import ybinlogp import time def print_queries(queries): for event, query in queries: print ('%s' % time.ctime (event.timestamp)) print ('server: %d' % event.server_id) print ('qtime: %d' % query.query_time) print ('database: %s' % query.database) print ('error: %d ' % query.error_code) print ('%s\n' % query.statement) if __name__ == "__main__": binlog = ybinlogp.binlog ("mysql/mysql-bin.000001", 0, 0) queries = [] for entry in binlog: if entry.query: queries.append((entry.event, entry.query,)); # This here del and adding to a list crap is just to excersize the # memory crap to look for things that aren't properly managed. del binlog print_queries(queries)