diff --git a/datai-scenes/datai-scene-salesforce/docs/api-docs/setting/2026-01-24-002-api-环境从库初始化.md b/datai-scenes/datai-scene-salesforce/docs/api-docs/setting/2026-01-24-002-api-环境从库初始化.md index 1038daff..357d8a29 100644 --- a/datai-scenes/datai-scene-salesforce/docs/api-docs/setting/2026-01-24-002-api-环境从库初始化.md +++ b/datai-scenes/datai-scene-salesforce/docs/api-docs/setting/2026-01-24-002-api-环境从库初始化.md @@ -114,7 +114,7 @@ POST /setting/environment/initSlave?environmentCode=dev #### 注意事项 1. 从库名称规则为 `slave_环境编码`,如 `slave_dev`、`slave_prod` 2. 从库一经创建,不允许任何修改、删除或重新初始化 -3. 数据库字符集必须为 `utf8mb4`,排序规则必须为 `utf8mb4_unicode_ci` +3. 数据库字符集必须为 `utf8mb4`,排序规则必须为 `utf8mb4_general_ci` 4. 使用 Spring 事务保证原子性,验证失败时自动回滚 5. 主库配置从 `application-druid.yml` 配置文件中读取 6. 从库初始化后自动验证数据源连接有效性 diff --git a/datai-scenes/datai-scene-salesforce/docs/api-docs/setting/DataiConfigEnvironmentController/0009-init-slave-datasource.md b/datai-scenes/datai-scene-salesforce/docs/api-docs/setting/DataiConfigEnvironmentController/0009-init-slave-datasource.md index 20621fd7..f7de8afa 100644 --- a/datai-scenes/datai-scene-salesforce/docs/api-docs/setting/DataiConfigEnvironmentController/0009-init-slave-datasource.md +++ b/datai-scenes/datai-scene-salesforce/docs/api-docs/setting/DataiConfigEnvironmentController/0009-init-slave-datasource.md @@ -160,7 +160,7 @@ curl -X POST "http://localhost:8080/setting/environment/initSlave" \ 2. 接口需要 setting:environment:initSlave 权限 3. 环境编码为必填项 4. 从库名称自动生成为 slave_环境编码 -5. 数据库字符集为 utf8mb4,排序规则为 utf8mb4_unicode_ci +5. 数据库字符集为 utf8mb4,排序规则为 utf8mb4_general_ci 6. 从库一经创建,不允许任何修改、删除或重新初始化 7. 使用 Spring 事务保证原子性,验证失败时自动回滚 8. 初始化操作会记录到操作日志中 @@ -183,7 +183,7 @@ curl -X POST "http://localhost:8080/setting/environment/initSlave" \ 3. 从 application-druid.yml 配置文件中读取主库配置 4. 生成从库名称(slave_环境编码) 5. 检查数据源名称是否已存在 -6. 使用 JDBC 创建数据库(字符集:utf8mb4,排序规则:utf8mb4_unicode_ci) +6. 使用 JDBC 创建数据库(字符集:utf8mb4,排序规则:utf8mb4_general_ci) 7. 写入数据源配置表 8. 注册数据源到 DataSourceManager 9. 切换到从库并验证连接有效性 diff --git a/datai-scenes/datai-scene-salesforce/docs/changelog/2026-01-24-002-changelog.md b/datai-scenes/datai-scene-salesforce/docs/changelog/2026-01-24-002-changelog.md index bbc6d634..4ffb9b90 100644 --- a/datai-scenes/datai-scene-salesforce/docs/changelog/2026-01-24-002-changelog.md +++ b/datai-scenes/datai-scene-salesforce/docs/changelog/2026-01-24-002-changelog.md @@ -16,7 +16,7 @@ - 从配置文件读取主库配置(application-druid.yml) - 生成从库名称(slave_环境编码) - 检查数据源名称是否已存在 - - 使用 JDBC 创建数据库(字符集:utf8mb4,排序规则:utf8mb4_unicode_ci) + - 使用 JDBC 创建数据库(字符集:utf8mb4,排序规则:utf8mb4_general_ci) - 写入数据源配置表 - 注册数据源到 DataSourceManager - 切换到从库 diff --git a/datai-scenes/datai-scene-salesforce/docs/implementation/2026-01-24-002-implementation-环境从库初始化.md b/datai-scenes/datai-scene-salesforce/docs/implementation/2026-01-24-002-implementation-环境从库初始化.md index 9f1db2cb..4c2b9c16 100644 --- a/datai-scenes/datai-scene-salesforce/docs/implementation/2026-01-24-002-implementation-环境从库初始化.md +++ b/datai-scenes/datai-scene-salesforce/docs/implementation/2026-01-24-002-implementation-环境从库初始化.md @@ -172,7 +172,7 @@ ### 1. 数据库注意事项 - 从库名称必须为 `slave_环境编码`,如 `slave_dev`、`slave_prod` -- 数据库字符集必须为 `utf8mb4`,排序规则必须为 `utf8mb4_unicode_ci` +- 数据库字符集必须为 `utf8mb4`,排序规则必须为 `utf8mb4_general_ci` - 从库一经创建,不允许任何修改、删除或重新初始化 ### 2. 代码注意事项 diff --git a/datai-system/src/main/java/com/datai/system/service/impl/SysDatasourceConfigServiceImpl.java b/datai-system/src/main/java/com/datai/system/service/impl/SysDatasourceConfigServiceImpl.java index 52c8488f..7cb1561c 100644 --- a/datai-system/src/main/java/com/datai/system/service/impl/SysDatasourceConfigServiceImpl.java +++ b/datai-system/src/main/java/com/datai/system/service/impl/SysDatasourceConfigServiceImpl.java @@ -280,7 +280,7 @@ public class SysDatasourceConfigServiceImpl implements ISysDatasourceConfigServi public boolean validateDatasourceConfig(SysDatasourceConfig config) { String jdbcUrl = buildJdbcUrl(config); String username = config.getUsername(); - String password = decryptPassword(config.getPassword()); + String password = config.getPassword(); String driverClassName = getDriverClassName(config.getDbType()); return dynamicDataSourceManager.validateDataSource(jdbcUrl, username, password, driverClassName); @@ -464,17 +464,15 @@ public class SysDatasourceConfigServiceImpl implements ISysDatasourceConfigServi throw new RuntimeException("数据源名称已存在:" + environmentCode); } - String masterPasswordPlain = masterPassword; - Connection connection = null; Statement statement = null; SysDatasourceConfig slaveConfig = null; try { - connection = DriverManager.getConnection(masterUrl, masterUsername, masterPasswordPlain); + connection = DriverManager.getConnection(masterUrl, masterUsername, masterPassword); statement = connection.createStatement(); - String createDbSql = String.format("CREATE DATABASE `%s` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci", slaveDbName); + String createDbSql = String.format("CREATE DATABASE `%s` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci", slaveDbName); log.info("[从库创建] 执行SQL: {}", createDbSql); statement.execute(createDbSql); log.info("[从库创建] 数据库创建成功: {}", slaveDbName); @@ -504,7 +502,7 @@ public class SysDatasourceConfigServiceImpl implements ISysDatasourceConfigServi log.info("[从库创建] 数据源配置写入成功, ID: {}", slaveConfig.getId()); String slaveJdbcUrl = buildJdbcUrl(slaveConfig); - dynamicDataSourceManager.addDynamicDataSource(slaveConfig.getDsName(), slaveJdbcUrl, slaveConfig.getUsername(), masterPasswordPlain); + dynamicDataSourceManager.addDynamicDataSource(slaveConfig.getDsName(), slaveJdbcUrl, slaveConfig.getUsername(), masterPassword); log.info("[从库创建] 数据源注册成功: {}", slaveConfig.getDsName()); switchDataSource(slaveConfig.getDsName());