pull/577/head
Mr Chen 1 year ago
parent c89ee89061
commit 585cd8b532
  1. 55
      plugins/mysql/index.py
  2. 5
      plugins/mysql/install.sh

@ -3018,6 +3018,58 @@ def dumpMysqlData(version=''):
return 'fail'
############### --- 重要 数据补足同步 ---- ###########
def syncDatabaseRepair(version=''):
args = getArgs()
data = checkArgs(args, ['db','sign'])
if not data[0]:
return data[1]
sync_args_db = args['db']
sync_args_sign = args['sign']
conn = pSqliteDb('slave_sync_user')
if sync_args_sign != '':
data = conn.field('ip,port,user,pass,mode,cmd').where('ip=?', (sync_sign,)).find()
else:
data = conn.field('ip,port,user,pass,mode,cmd').find()
# print(data)
user = data['user']
apass = data['pass']
port = data['port']
ip = data['ip']
# 本地数据
local_db = pMysqlDb()
# 远程数据
sync_db = mw.getMyORM()
# MySQLdb |
sync_db.setPort(port)
sync_db.setHost(ip)
sync_db.setUser(user)
sync_db.setPwd(apass)
sync_db.setDbName(sync_args_db)
tables = local_db.query('show tables from `%s`' % sync_args_db)
table_key = "Tables_in_" + sync_args_db
for tb in tables:
table_name = sync_args_db+'.'+tb[table_key]
# 比较总数
cmd_count_sql = 'select count(*) as num from '+table_name
local_count_data = local_db.query(cmd_count_sql)
sync_count_data = sync_db.query(cmd_count_sql)
print(local_count_data,sync_count_data)
data = sync_db.query("select version()")
print(data)
return True
############### --- 重要 同步---- ###########
def asyncTmpfile():
@ -3028,6 +3080,7 @@ def asyncTmpfile():
def writeDbSyncStatus(data):
path = asyncTmpfile()
mw.writeFile(path, json.dumps(data))
return True
def doFullSync(version=''):
@ -3516,5 +3569,7 @@ if __name__ == "__main__":
print(doFullSync(version))
elif func == 'dump_mysql_data':
print(dumpMysqlData(version))
elif func == 'sync_database_repair':
print(syncDatabaseRepair())
else:
print('error')

@ -6,8 +6,9 @@ export PATH
# https://www.cnblogs.com/whiteY/p/17331882.html
# cd /www/server/mdserver-web/plugins/mysql && bash install.sh install 8.2
# cd /www/server/mdserver-web && source bin/activate && python3 /www/server/mdserver-web/plugins/mysql/index.py try_slave_sync_bugfix {}
# cd /www/server/mdserver-web && python3 /www/server/mdserver-web/plugins/mysql/index.py do_full_sync {"db":"xxx","sign":"","begin":1}
# cd /www/server/mdserver-web && source bin/activate && python3 plugins/mysql/index.py try_slave_sync_bugfix {}
# cd /www/server/mdserver-web && python3 plugins/mysql/index.py do_full_sync {"db":"xxx","sign":"","begin":1}
# cd /www/server/mdserver-web && python3 plugins/mysql/index.py sync_database_repair {"db":"xxx","sign":""}
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")

Loading…
Cancel
Save