diff --git a/plugins/mysql-apt/index.py b/plugins/mysql-apt/index.py index dc3ba063d..a6d426d5a 100755 --- a/plugins/mysql-apt/index.py +++ b/plugins/mysql-apt/index.py @@ -2013,7 +2013,8 @@ def addMasterRepSlaveUser(version=''): if psdb.where("username=?", (username)).count() > 0: return mw.returnJson(False, '用户已存在!') - if version == "8.0": + mdb8 = ['8.0','8.1','8.2','8.3','8.4'] + if mw.inArray(mdb8,version): sql = "CREATE USER '" + username + \ "' IDENTIFIED WITH mysql_native_password BY '" + password + "';" pdb.execute(sql) @@ -2031,13 +2032,12 @@ def addMasterRepSlaveUser(version=''): if isError != None: return isError - sql_select = "grant select,lock tables,PROCESS on *.* to " + username + "@'%';" + sql_select = "grant select,reload,REPLICATION CLIENT,PROCESS on *.* to " + username + "@'%';" pdb.execute(sql_select) pdb.execute('FLUSH PRIVILEGES;') addTime = time.strftime('%Y-%m-%d %X', time.localtime()) - psdb.add('username,password,accept,ps,addtime', - (username, password, '%', '', addTime)) + psdb.add('username,password,accept,ps,addtime',(username, password, '%', '', addTime)) return mw.returnJson(True, '添加成功!') @@ -2076,29 +2076,31 @@ def getMasterRepSlaveUserCmd(version): if sid != '': channel_name = " for channel 'r{}';".format(sid) - if mode == "gtid": - sql = "CHANGE MASTER TO MASTER_HOST='" + ip + "', MASTER_PORT=" + port + ", MASTER_USER='" + \ - clist[0]['username'] + "', MASTER_PASSWORD='" + \ - clist[0]['password'] + "', MASTER_AUTO_POSITION=1" + channel_name - if version == '8.0': - sql = "CHANGE REPLICATION SOURCE TO SOURCE_HOST='" + ip + "', SOURCE_PORT=" + port + ", SOURCE_USER='" + \ - clist[0]['username'] + "', SOURCE_PASSWORD='" + \ - clist[0]['password'] + \ - "', MASTER_AUTO_POSITION=1" + channel_name + mdb8 = ['8.0','8.1','8.2','8.3','8.4'] + sql = '' + if not mw.inArray(mdb8,version): + base_sql = "CHANGE MASTER TO MASTER_HOST='" + ip + "', MASTER_PORT=" + port + ", MASTER_USER='" + \ + clist[0]['username'] + "', MASTER_PASSWORD='" + \ + clist[0]['password'] + "'" + + sql += base_sql; + sql += "

"; + # sql += base_sql + ", MASTER_AUTO_POSITION=1" + channel_name + sql += base_sql + channel_name + sql += "

"; + + sql += base_sql + "', MASTER_LOG_FILE='" + mstatus[0]["File"] + "',MASTER_LOG_POS=" + str(mstatus[0]["Position"]) + channel_name else: - sql = "CHANGE MASTER TO MASTER_HOST='" + ip + "', MASTER_PORT=" + port + ", MASTER_USER='" + \ - clist[0]['username'] + "', MASTER_PASSWORD='" + \ - clist[0]['password'] + \ - "', MASTER_LOG_FILE='" + mstatus[0]["File"] + \ - "',MASTER_LOG_POS=" + str(mstatus[0]["Position"]) + channel_name - - if version == "8.0": - sql = "CHANGE REPLICATION SOURCE TO SOURCE_HOST='" + ip + "', SOURCE_PORT=" + port + ", SOURCE_USER='" + \ + base_sql = "CHANGE REPLICATION SOURCE TO SOURCE_HOST='" + ip + "', SOURCE_PORT=" + port + ", SOURCE_USER='" + \ clist[0]['username'] + "', SOURCE_PASSWORD='" + \ - clist[0]['password'] + \ - "', SOURCE_LOG_FILE='" + mstatus[0]["File"] + \ - "',SOURCE_LOG_POS=" + \ - str(mstatus[0]["Position"]) + channel_name + clist[0]['password']+"'" + sql += base_sql; + sql += "

"; + # sql += base_sql + ", MASTER_AUTO_POSITION=1" + channel_name + sql += base_sql + channel_name + sql += "

"; + sql += base_sql + "', SOURCE_LOG_FILE='" + mstatus[0]["File"] + "',SOURCE_LOG_POS=" + str(mstatus[0]["Position"]) + channel_name + data = {} data['cmd'] = sql diff --git a/plugins/mysql-apt/js/mysql-apt.js b/plugins/mysql-apt/js/mysql-apt.js index a04dc3f43..0a80680b0 100755 --- a/plugins/mysql-apt/js/mysql-apt.js +++ b/plugins/mysql-apt/js/mysql-apt.js @@ -2752,7 +2752,7 @@ function masterOrSlaveConf(version=''){ return false; }, change:function(index,mode,reload){ - console.log(index,mode,reload); + // console.log(index,mode,reload); myPost('set_dbrun_mode',{'mode':mode,'reload':reload},function(data){ layer.close(index); var rdata = $.parseJSON(data.data); diff --git a/plugins/mysql/index.py b/plugins/mysql/index.py index 07a921bc2..f2e90c0eb 100755 --- a/plugins/mysql/index.py +++ b/plugins/mysql/index.py @@ -2313,7 +2313,7 @@ def addMasterRepSlaveUser(version=''): reg = "^[\w-]+$" if not re.match(reg, username): return mw.returnJson(False, '用户名不能带有特殊符号!') - checks = ['root', 'mysql', 'test', 'sys', 'panel_logs'] + checks = ['root', 'mysql', 'test', 'sys', ] if username in checks or len(username) < 1: return mw.returnJson(False, '用户名不合法!') if password in checks or len(password) < 1: @@ -2330,7 +2330,8 @@ def addMasterRepSlaveUser(version=''): if psdb.where("username=?", (username)).count() > 0: return mw.returnJson(False, '用户已存在!') - if version == "8.0": + mdb8 = ['8.0','8.1','8.2','8.3','8.4'] + if mw.inArray(mdb8,version): sql = "CREATE USER '" + username + \ "' IDENTIFIED WITH "+auth_policy+" BY '" + password + "';" pdb.execute(sql) @@ -2339,7 +2340,6 @@ def addMasterRepSlaveUser(version=''): isError = isSqlError(result) if isError != None: return isError - else: sql = "grant replication SLAVE ON *.* TO '" + username + \ "'@'%' identified by '" + password + "';"