mysql指定表同步_Mysql指定部分数据同步
mysql指定表同步_Mysql指定部分数据同步
#-*- coding: utf-8 -*-#@Time : 2019-09-11 10:25#@Author : Huangwenjun#@Email : 350920551@qq#@File : rsyncdata.py#@Software: PyCharm#@exe_location:
importpymysqlimportconfigparserimportosclassRsyncData():def __init__(self):医院半年工作总结
<_item()
南京大屠杀是哪年哪月哪日
self.dest_host=self.item['dest_host']
self.dest_port=int(self.item['dest_port'])
self.dest_user= self.item['dest_user']
self.dest_pwd= self.item['dest_passwd']
<_source()defget_item(self):"""读取配置⽂件信息"""cf=configparser.ConfigParser()
config={}for db incf.sections():
items={}for item incf.items(db):
提速最快的车items[item[0]]= item[1]
config[db]=items
self.item= config['db']defconn_source(self):"""连接源端数据库"""self.source_conn= t(host=self.dest_host, port=self.dest_port, user=self.dest_user,
passwd=self.dest_pwd, charset='utf8mb4')defexecute_sql(self, conn, sql):"""执⾏sql"""curs=conn.cursor()
rows=curs.fetchall()
curs.close()returnrowselse:
忘却的近义词
curs.close()defclose(self):"""关闭数据库连
接"""self.source_conn.close()defbackup_table(self,table_schema,table_name,is_com):"""备份表
大众是哪个国家的:param table_schema: 数据库schema
:param table_name: 表名称
:param is_com: 是否包含company_id"""
if is_com>=1:
backup_cmd="mysqldump -u%s -p%s -h %s -P %s --single-transaction %s %s --where='company_id=1'>%s.sql"% (sql_sql_sql_sql_port,table_schema,table_name,table_name)else:
backup_cmd= "mysqldump -u%s -p%s -h %s -P %s --single-transaction %s %s>%s.sql" %(
os.system(backup_cmd)defmysql_import(self,table_schema,table_name):"""数据导⼊
:param table_schema: 数据库schema
:param table_name: 表名称"""import_cmd='mysql -u%s -p%s -h %s -P %s -D %s -e"source %s.sql"'%
(self.dest_user,self.dest_pwd,self.dest_host,self.dest_port,table_schema,table_name)print(import_cmd)
os.system(import_cmd)defrun(self):"""执⾏⼊⼝
:return:"""
#从源端获取库 表名称
sql="select table_schema,table_name,sum(case when column_name='company_id' then 1 else 0 en
d) company_id_count from information_schema.`COLUMNS` where TABLE_SCHEMA not in
谢娜和刘烨为什么分手('mysql','information_schema','performance_schema','sys') group by
table_schema,table_name"ute_sql(self.source_conn,sql)for row inrows:
table_schema=row[0]
table_name=row[1]
is_comid=row[2]#数据备份
self.backup_table(table_schema,table_name,is_comid)#数据导⼊
rsync_data=RsyncData()
rsync_data.run()
rsync_data.close()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。