diff --git a/plugins/mysql-apt/index.py b/plugins/mysql-apt/index.py index 5a55cfaa9..7b88c8628 100755 --- a/plugins/mysql-apt/index.py +++ b/plugins/mysql-apt/index.py @@ -2003,7 +2003,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', 'performance_schema','information_schema'] if username in checks or len(username) < 1: return mw.returnJson(False, '用户名不合法!') if password in checks or len(password) < 1: diff --git a/plugins/mysql-yum/index.py b/plugins/mysql-yum/index.py index 1ce4642b1..619c6ea78 100755 --- a/plugins/mysql-yum/index.py +++ b/plugins/mysql-yum/index.py @@ -1239,7 +1239,7 @@ def addDb(): reg = "^[\w-]+$" if not re.match(reg, args['name']): return mw.returnJson(False, '数据库名称不能带有特殊符号!') - checks = ['root', 'mysql', 'test', 'sys', 'panel_logs'] + checks = ['root', 'mysql', 'test', 'sys', 'performance_schema','information_schema'] if dbuser in checks or len(dbuser) < 1: return mw.returnJson(False, '数据库用户名不合法!') if dbname in checks or len(dbname) < 1: @@ -1979,21 +1979,17 @@ def addMasterRepSlaveUser(version=''): if not data[0]: return data[1] - if not 'address' in args: - address = '' - else: + address = '' + if 'address' in args: address = args['address'].strip() username = args['username'].strip() password = args['password'].strip() - # ps = args['ps'].strip() - # address = args['address'].strip() - # dataAccess = args['dataAccess'].strip() reg = "^[\w-]+$" if not re.match(reg, username): return mw.returnJson(False, '用户名不能带有特殊符号!') - checks = ['root', 'mysql', 'test', 'sys', 'panel_logs'] + checks = ['root', 'mysql', 'test', 'sys', 'performance_schema','information_schema'] if username in checks or len(username) < 1: return mw.returnJson(False, '用户名不合法!') if password in checks or len(password) < 1: @@ -2005,14 +2001,13 @@ def addMasterRepSlaveUser(version=''): pdb = pMysqlDb() psdb = pSqliteDb('master_replication_user') - auth_policy = getAuthPolicy() - 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 + "';" + "' IDENTIFIED WITH mysql_native_password BY '" + password + "';" pdb.execute(sql) sql = "grant replication slave on *.* to '" + username + "'@'%';" result = pdb.execute(sql) @@ -2028,13 +2023,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, '添加成功!') @@ -2071,31 +2065,33 @@ def getMasterRepSlaveUserCmd(version): sid = getDbServerId() channel_name = "" 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 + channel_name = " for channel 'r{}'".format(sid) + + 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/index.py b/plugins/mysql/index.py index 572220657..df34c10eb 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', ] + checks = ['root', 'mysql', 'test', 'sys', 'performance_schema','information_schema'] if username in checks or len(username) < 1: return mw.returnJson(False, '用户名不合法!') if password in checks or len(password) < 1: