博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Mysql 查询所有表的实时记录用于对比2个MySQL 库的数据是否异步
阅读量:4576 次
发布时间:2019-06-08

本文共 1989 字,大约阅读时间需要 6 分钟。

Xu言:

  今天,为了研究一个MySQL主从同步开机后报错 问题,如下图

故障原因分析:

 经过分析,可能是主从服务器开机顺序导致。(有待下次断电再次测试)

主从错误提示:日志读取错误的问题。解决方法:更新日志记录文件,重新主从同步。

 

担心主从问题过程中有数据写入,想去确认下主从库上的数据是否一致。想到了查询下数据库行数的方式。

网上查询了下 ,一般有2种:

方法一:查看当前表的记录行数

SELECT count(*) from 表名

 

方法二:"查看数据库中所有表的记录数"  # 这里之所以打引号,是因为这里的数据不准确

SELECT table_name,table_rows FROM information_schema.tables 

WHERE TABLE_SCHEMA = 'testdb' 

ORDER BY table_rows DESC;

 

所以,经过各路大仙帮助使用了第一种方法进行了改良。

 

拼接法:

借助information_schema库的tables表,来拼接出一个条sql语句

use information_schema;select concat(    'select "',     TABLE_name,     '", count(*) from ',     TABLE_SCHEMA,     '.',    TABLE_name,    ' union all') from tables where TABLE_SCHEMA='数据库名';

拼接出来以后,使用工具去掉“union all ”部分,批量执行。 

 

Python方式循环:

 

#!/usr/bin/env python# Author: Loki# Date: 2019-02-012# Version: 0.1import pymysqlUser = ''  # 这里补充你的MySQL用户名Pass = ''  # 这里补充你的MySQL密码Port = 33060  # 自己的MySQL端口db = pymysql.connect(host="192.168.x.x", port=Port, user=User, password=Pass, db='数据库名')cursor = db.cursor()cursor.execute("show tables")  # 查询本数据库的所有表名table_name = cursor.fetchall()count = 0for item in table_name:  # 循环    count += 1    tbn = item[0]    sql_ = "SELECT count(*) FROM %s" % tbn    cursor.execute(sql_)    data = cursor.fetchone()    print("table_name=%s, row=%s" % (tbn,data))print("table totle= %s" % count)# Close Connectcursor.close()db.close()

以上Python方法输出比较不友好,可以优化为输出到文本里面。账号密码部分也可以使用input()函数方式来提示填入

 

Shell方式循环:

 

#!/bin/bash # Author:Jerry tb_name=`mysql -u账号 -p密码 -h192.168.x.x -P端口 -e "select table_name from information_schema.tables where table_schema='数据库名'"|awk 'NR>1{print $1}'`for name in $tb_name ;do tbl_count=`mysql -u账号 -p密码 -h192.168.x.x -P端口 -e "select count (*) as times from cwsys.$name;"| tail -1`echo "$name=$tbl_count" >>/home/xxx/xxx.log done

 

 以上就是使用的一些方法和思路,留个记录以作备忘。

 PS:最后鸣谢各路大仙,就不一一点名!你们懂得

 

参考资料:

https://www.cnblogs.com/woider/p/5926744.html

https://blog.csdn.net/a19860903/article/details/52311765

https://www.cnblogs.com/xfxing/p/9322199.html

转载于:https://www.cnblogs.com/Cong0ks/p/10364502.html

你可能感兴趣的文章
大众点评CAT错误总结以及解决思路
查看>>
从0开始学爬虫3之xpath的介绍和使用
查看>>
vim下正则表达式的非贪婪匹配
查看>>
一个python的计算熵(entropy)的函数
查看>>
spring源码学习——spring整体架构和设计理念
查看>>
模拟window系统的“回收站”
查看>>
报文格式【定长报文】
查看>>
RDLC报表钻取空白页问题
查看>>
多路电梯调度的思想
查看>>
jQuery-对Select的操作
查看>>
过滤器、监听器、拦截器的区别
查看>>
为什么要进行需求分析?通常对软件系统有哪些需求?
查看>>
一些模板
查看>>
jquery和dom元素相互转换
查看>>
放大的X--HDOJ-201307292012
查看>>
题目831-签到-nyoj-20140818
查看>>
百词斩-斩家秘籍
查看>>
Mysql主从配置,实现读写分离
查看>>
真事儿!——我们官网被全站拷贝了!
查看>>
抽象类及抽象方法
查看>>