From f58595755b33ab90c18b7c7e7de43ee4e82444d7 Mon Sep 17 00:00:00 2001 From: midoks Date: Fri, 30 Dec 2022 12:01:02 +0800 Subject: [PATCH] Update index.py --- plugins/mysql/index.py | 43 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/plugins/mysql/index.py b/plugins/mysql/index.py index 6b84cdd7d..af09241b2 100755 --- a/plugins/mysql/index.py +++ b/plugins/mysql/index.py @@ -1944,7 +1944,7 @@ def addMasterRepSlaveUser(version=''): sql = "CREATE USER '" + username + \ "' IDENTIFIED WITH mysql_native_password BY '" + password + "';" pdb.execute(sql) - sql = "grant replication slave on *.* to '" + username + "'@'%';" + sql = "grant replication,select slave on *.* to '" + username + "'@'%';" result = pdb.execute(sql) isError = isSqlError(result) if isError != None: @@ -1953,7 +1953,7 @@ def addMasterRepSlaveUser(version=''): sql = "FLUSH PRIVILEGES;" pdb.execute(sql) else: - sql = "GRANT REPLICATION SLAVE ON *.* TO '" + username + \ + sql = "grant replication,select SLAVE ON *.* TO '" + username + \ "'@'%' identified by '" + password + "';" result = pdb.execute(sql) result = pdb.execute('FLUSH PRIVILEGES;') @@ -2452,7 +2452,9 @@ def setSlaveStatusSyncUser(version=''): return mw.returnJson(False, '没有数据无法重启!') user = data['user'] apass = data['pass'] - db.query("start slave user='{}' password='{}';".format(user, apass)) + + db.query("start slave") + # db.query("start slave user='{}' password='{}';".format(user, apass)) return mw.returnJson(True, '设置成功!') @@ -2462,7 +2464,7 @@ def setSlaveStatusSSH(version=''): db = pMysqlDb() dlist = db.query('show slave status') if len(dlist) == 0: - return mw.returnJson(False, '需要手动添加主服务命令或者执行[初始化]!') + return mw.returnJson(False, '需要手动添加主服务命令或者执行初始化!') if len(dlist) > 0 and (dlist[0]["Slave_IO_Running"] == 'Yes' or dlist[0]["Slave_SQL_Running"] == 'Yes'): db.query('stop slave') @@ -2527,6 +2529,39 @@ def writeDbSyncStatus(data): def doFullSync(version=''): + mode_file = getSyncModeFile() + if not os.path.exists(mode_file): + return mw.returnJson(False, '需要先设置同步配置') + + mode = mw.readFile(mode_file) + if mode == 'ssh': + return doFullSyncSSH(version) + if mode == 'sync-user': + return doFullSyncUser(version) + + +def doFullSyncUser(version=''): + args = getArgs() + data = checkArgs(args, ['db']) + if not data[0]: + return data[1] + + db = pMysqlDb() + + conn = pSqliteDb('slave_sync_user') + data = conn.field('ip,port,user,pass,mode,cmd').find() + user = data['user'] + apass = data['pass'] + + dump_sql_data = getServerDir() + "/bin/mysqldump -uroot -p" + + print(data) + + writeDbSyncStatus({'code': 0, 'msg': '开始同步...', 'progress': 0}) + return True + + +def doFullSyncSSH(version=''): args = getArgs() data = checkArgs(args, ['db'])