From 656d9b6d897c6f5680f964ea5f0e9ffe27fa7478 Mon Sep 17 00:00:00 2001 From: midoks Date: Fri, 5 Aug 2022 17:26:47 +0800 Subject: [PATCH] up --- plugins/mysql/conf/gtid.cnf | 4 +++- plugins/mysql/index.py | 26 ++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/plugins/mysql/conf/gtid.cnf b/plugins/mysql/conf/gtid.cnf index 081e62c39..5076776a6 100644 --- a/plugins/mysql/conf/gtid.cnf +++ b/plugins/mysql/conf/gtid.cnf @@ -1,2 +1,4 @@ +[mysqld] +# SHOW GLOBAL VARIABLES LIKE '%gtid%' gtid_mode=ON -enforce_gtid_consistency=ON +enforce_gtid_consistency=ON \ No newline at end of file diff --git a/plugins/mysql/index.py b/plugins/mysql/index.py index 8da3ccf40..80e8fad0b 100755 --- a/plugins/mysql/index.py +++ b/plugins/mysql/index.py @@ -1403,6 +1403,10 @@ def getDbrunMode(version=''): def setDbrunMode(version=''): + + if version == '5.5': + return mw.returnJson(False, "不支持切换") + args = getArgs() data = checkArgs(args, ['mode', 'reload']) if not data[0]: @@ -1422,6 +1426,28 @@ def setDbrunMode(version=''): con = re.sub(rep, rep_after, con) mw.writeFile(path, con) + db = pMysqlDb() + + # The value of @@GLOBAL.GTID_MODE can only be changed one step at a + # time: OFF <-> OFF_PERMISSIVE <-> ON_PERMISSIVE <-> ON. Also note that + # this value must be stepped up or down simultaneously on all servers. + # See the Manual for instructions. + if mode == 'classic': + db.query('set global enforce_gtid_consistency=off') + db.query('set global gtid_mode=on') + db.query('set global gtid_mode=on_permissive') + db.query('set global gtid_mode=off_permissive') + db.query('set global gtid_mode=off') + elif mode == 'gtid': + db.query('set global enforce_gtid_consistency=on') + db.query('set global gtid_mode=off') + db.query('set global gtid_mode=off_permissive') + db.query('set global gtid_mode=on_permissive') + db.query('set global gtid_mode=on') + + if dbreload == "yes": + restart(version) + return mw.returnJson(True, "切换成功!")