配這個眼睛都花了,改了好幾次。
一些細節,不能出現tab,必須用空格,否則報錯。
縮進要檢查好,否則報屬性不存在。
Cannot create property=shardingRule for JavaBean=io.shardingsphere.shardingproxy.config.yaml.YamlProxyRuleConfiguration
最好下載最新的mysql-connector,https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.19
放到sharding-proxy:/opt/sharding-proxy/lib裏。
最後附上conf.yaml
schemaName: shard_order
dataSources:
shard_conf:
url: jdbc:mysql://localhost:3306/shard_conf?useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useOldAliasMetadataBehavior=true&useSSL=false
username: root
password: password
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 65
sharding_1_m:
url: jdbc:mysql://localhost:3306/sharding_1_m?useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useOldAliasMetadataBehavior=true&useSSL=false
username: root
password: password
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 65
sharding_1_s1:
url: jdbc:mysql://localhost:3306/sharding_1_s1?useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useOldAliasMetadataBehavior=true&useSSL=false
username: readonly
password: READ6e4E3Bt2
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 65
sharding_1_s2:
url: jdbc:mysql://localhost:3306/sharding_1_s2?useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useOldAliasMetadataBehavior=true&useSSL=false
username: readonly
password: READ6e4E3Bt2
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 65
sharding_2_m:
url: jdbc:mysql://localhost:3306/sharding_2_m?useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useOldAliasMetadataBehavior=true&useSSL=false
username: root
password: password
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 65
sharding_2_s1:
url: jdbc:mysql://localhost:3306/sharding_2_s1?useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useOldAliasMetadataBehavior=true&useSSL=false
username: readonly
password: READ6e4E3Bt2
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 65
sharding_2_s2:
url: jdbc:mysql://localhost:3306/sharding_2_s2?useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useOldAliasMetadataBehavior=true&useSSL=false
username: readonly
password: READ6e4E3Bt2
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 65
sharding_3:
url: jdbc:mysql://localhost:3306/sharding_3_m?useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useOldAliasMetadataBehavior=true&useSSL=false
username: root
password: password
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 65
sharding_3_m:
url: jdbc:mysql://localhost:3306/sharding_3_m?useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useOldAliasMetadataBehavior=true&useSSL=false
username: root
password: password
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 65
sharding_3_s1:
url: jdbc:mysql://localhost:3306/sharding_3_s1?useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useOldAliasMetadataBehavior=true&useSSL=false
username: readonly
password: READ6e4E3Bt2
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 65
sharding_3_s2:
url: jdbc:mysql://localhost:3306/sharding_3_s2?useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useOldAliasMetadataBehavior=true&useSSL=false
username: readonly
password: READ6e4E3Bt2
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 65
shardingRule:
tables:
orders:
actualDataNodes: sharding_$->{1..3}$->{['_m']}.orders_$->{0..1}
databaseStrategy:
inline:
shardingColumn: adddate
algorithmExpression: sharding${orders_id % 2}
tableStrategy:
inline:
shardingColumn: orders_id
algorithmExpression: orders${orders_id % 2}
orders_detail:
actualDataNodes: sharding_$->{1..3}$->{['_m']}.orders_detail_$->{0..1}
databaseStrategy:
inline:
shardingColumn: orders_id
algorithmExpression: sharding${orders_id % 2}
tableStrategy:
inline:
shardingColumn: orders_id
algorithmExpression: orders_detail_${orders_id % 2}
bindingTables:
- orders_,orders_detail
broadcastTables:
- shard_config
defaultDataSourceName: sharding_1_m
defaultTableStrategy:
none:
masterSlaveRules:
sharding_1_m:
name: sharding_1_m
masterDataSourceName: sharding_1_m
slaveDataSourceNames:
- sharding_1_s1
- sharding_1_s2
loadBalanceAlgorithmType: ROUND_ROBIN
sharding_2_m:
name: sharding_2_m
masterDataSourceName: sharding_2_m
slaveDataSourceNames:
- sharding_2_s1
- sharding_2_s2
loadBalanceAlgorithmType: ROUND_ROBIN
sharding_3_m:
name: sharding_3_m
masterDataSourceName: sharding_3_m
slaveDataSourceNames:
- sharding_3_s1
- sharding_3_s2
loadBalanceAlgorithmType: ROUND_ROBIN