fix: add rwSplitUser also needs to check the version

adjust heartbeat error message
This commit is contained in:
guoaomen
2023-05-17 14:29:38 +08:00
parent 386bd74134
commit ca75ea46cf
2 changed files with 10 additions and 5 deletions

View File

@@ -153,7 +153,12 @@ public class MySQLDetector implements SQLQueryResultListener<SQLQueryResult<Map<
} else if (variables.isLowerCase() != DbleServer.getInstance().getSystemVariables().isLowerCaseTableNames()) {
errMsg = "this dbInstance[=" + url + "]'s lower_case is wrong";
} else if (versionMismatch) {
errMsg = "this dbInstance[=" + url + "]'s version[=" + variables.getVersion() + "] cannot be lower than the dble version[=" + SystemConfig.getInstance().getFakeMySQLVersion() + "]";
if (!source.getDbGroup().isRwSplitUseless()) {
//rw-split
errMsg = "the dble version[=" + SystemConfig.getInstance().getFakeMySQLVersion() + "] and " + source.getDbGroupConfig().instanceDatabaseType().toString() + "[" + source.getConfig().getUrl() + "] version[=" + variables.getVersion() + "] not match, Please check the version.";
} else {
errMsg = "this dbInstance[=" + url + "]'s version[=" + variables.getVersion() + "] cannot be lower than the dble version[=" + SystemConfig.getInstance().getFakeMySQLVersion() + "],pls check the backend " + source.getDbGroupConfig().instanceDatabaseType() + " node.";
}
} else {
errMsg = "this dbInstance[=" + url + "]'s max_allowed_packet is " + variables.getMaxPacketSize() + ", but dble's is " + SystemConfig.getInstance().getMaxPacketSize();
}

View File

@@ -261,7 +261,7 @@ public final class ConfigUtil {
//sharding or analysis
boolean isMatch = majorVersion >= VersionUtil.getMajorVersion(SystemConfig.getInstance().getFakeMySQLVersion());
if (!isMatch && isThrowException) {
throw new ConfigException("the dble version[=" + SystemConfig.getInstance().getFakeMySQLVersion() + "] cannot be higher than the minimum version of the backend " + type + " node,pls check the backend " + type + " node.");
throw new ConfigException("this dbInstance[=" + instance.getConfig().getUrl() + "]'s version[=" + version + "] cannot be lower than the dble version[=" + SystemConfig.getInstance().getFakeMySQLVersion() + "],pls check the backend " + type + " node.");
}
return isMatch;
}
@@ -443,8 +443,8 @@ public final class ConfigUtil {
public static void checkDbleAndMysqlVersion(List<ChangeItem> changeItemList, ConfigInitializer newConfigLoader) {
List<ChangeItem> needCheckVersionList = changeItemList.stream()
//add dbInstance or add dbGroup or add shardingNode or (update dbInstance and need testConn) or (update rwSplitUser and affectEntryDbGroup=true) or update shardingNode
.filter(changeItem -> ((changeItem.getItemType() == ChangeItemType.PHYSICAL_DB_INSTANCE || changeItem.getItemType() == ChangeItemType.PHYSICAL_DB_GROUP || changeItem.getItemType() == ChangeItemType.SHARDING_NODE) && changeItem.getType() == ChangeType.ADD) ||
//add dbInstance/dbGroup/rwSplitUser/shardingNode or (update dbInstance and need testConn) or (update rwSplitUser and affectEntryDbGroup=true) or update shardingNode
.filter(changeItem -> (changeItem.getType() == ChangeType.ADD) ||
(changeItem.getItemType() == ChangeItemType.PHYSICAL_DB_INSTANCE && changeItem.getType() == ChangeType.UPDATE && changeItem.isAffectTestConn()) ||
(changeItem.getItemType() == ChangeItemType.USERNAME && changeItem.getType() == ChangeType.UPDATE && changeItem.isAffectEntryDbGroup()) ||
(changeItem.getItemType() == ChangeItemType.SHARDING_NODE && changeItem.getType() == ChangeType.UPDATE))
@@ -470,7 +470,7 @@ public final class ConfigUtil {
ShardingNode shardingNode = (ShardingNode) item;
PhysicalDbGroup dbGroup = shardingNode.getDbGroup();
checkDbGroupVersion(dbGroup);
} else if (changeItem.getItemType() == ChangeItemType.USERNAME && changeItem.isAffectEntryDbGroup()) {
} else if (changeItem.getItemType() == ChangeItemType.USERNAME) {
RwSplitUserConfig rwSplitUserConfig = (RwSplitUserConfig) newConfigLoader.getUsers().get(item);
PhysicalDbGroup dbGroup = newConfigLoader.getDbGroups().get(rwSplitUserConfig.getDbGroup());
checkDbGroupVersion(dbGroup);