mirror of
https://github.com/actiontech/dble.git
synced 2026-01-02 02:40:28 -06:00
fix: add rwSplitUser also needs to check the version
adjust heartbeat error message
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user