您的 YAML 配置文件存在几个格式问题(主要是缩进和列表项标识)。以下是修正后的版本:
databaseName: readwrite_splitting_db
dataSources:
write_ds:
url: jdbc:mysql://10.19.83.26:9906/demo_write_ds?useSSL=false
username: root
password:
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
minPoolSize: 1
read_ds_0:
url: jdbc:mysql://10.19.83.27:9906/demo_read_ds_0?useSSL=false
username: root
password:
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
minPoolSize: 1
rules:
- !READWRITE_SPLITTING
dataSourceGroups:
readwrite_ds:
writeDataSourceName: write_ds
readDataSourceNames:
- read_ds_0 # ✔️ read数据源需要以列表形式声明(注意短横线和缩进)
loadBalancerName: random
loadBalancers:
random:
type: RANDOM # ✔️ ShardingSphere支持的负载均衡类型需大写(如RANDOM/ROUND_ROBIN)
主要修正点:
readDataSourceNames
- ❌原配置缺少列表标识符 (
-
)
- ✅修正为列表格式:
- read_ds_0
- ❌原配置缺少列表标识符 (
缩进对齐
- YAML严格要求层级缩进(建议2或4空格)
dataSourceGroups
和loadBalancers
的子项需统一缩进
- YAML严格要求层级缩进(建议2或4空格)
负载均衡类型
- ShardingSphere要求类型全大写(如
RANDOM
)
- ShardingSphere要求类型全大写(如
⚠️其他注意事项:
- 密码字段为空:如果密码实际存在,请补充;若无需密码,可保留空值。
- IP和端口:确保数据库地址可访问。
- ShardingSphere版本兼容性:不同版本对YAML语法可能有细微差异。
如果需要进一步验证,可以使用在线YAML校验工具(如 YAML Lint)。
内容由零声教学AI助手提供,问题来源于学员提问