5.0.0-beta

Data Source Configuration Item Explanation

schemaName: # Logic schema name.

dataSources: # Data sources configuration, multiple <data-source-name> available.
  <data-source-name>: # Different from ShardingSphere-JDBC configuration, it does not need to be configured with database connection pool.
    url: # Database URL.
    username: # Database username.
    password: # Database password.
    connectionTimeoutMilliseconds: # Connection timeout milliseconds.
    idleTimeoutMilliseconds: # Idle timeout milliseconds.
    maxLifetimeMilliseconds: # Maximum life milliseconds.
    maxPoolSize: 50 # Maximum connection count in the pool.
    minPoolSize: 1  # Minimum connection count in the pool.        

rules: # Keep consist with ShardingSphere-JDBC configuration.
# ...

Authentication

It is used to verify the authentication to log in ShardingSphere-Proxy, which must use correct user name and password after the configuration of them.

rules:
  - !AUTHORITY
    users:
      - root@localhost:root # <username>@<hostname>:<password>
      - sharding@:sharding
    provider:
      type: NATIVE # Must be explicitly specified.

If the hostname is % or empty, it means no restrict to the user’s host.

The type of the provider must be explicitly specified. Refer to 5.11 Proxy for more implementations.

Proxy Properties

props:
  sql-show: # Whether show SQL or not in log. Print SQL details can help developers debug easier. The log details include: logic SQL, actual SQL and SQL parse result.Enable this property will log into log topic ShardingSphere-SQL, log level is INFO.
  sql-simple: # Whether show SQL details in simple style.
  executor-size: # The max thread size of worker group to execute SQL. One ShardingSphereDataSource will use a independent thread pool, it does not share thread pool even different data source in same JVM.
  max-connections-size-per-query: # Max opened connection size for each query.
  check-table-metadata-enabled: # Whether validate table meta data consistency when application startup or updated.
  proxy-frontend-flush-threshold: # Flush threshold for every records from databases for ShardingSphere-Proxy.
  proxy-transaction-type: # Default transaction type of ShardingSphere-Proxy. Include: LOCAL, XA and BASE.
  proxy-opentracing-enabled: # Whether enable opentracing for ShardingSphere-Proxy.
  proxy-hint-enabled: # Whether enable hint for ShardingSphere-Proxy. Using Hint will switch proxy thread mode from IO multiplexing to per connection per thread, which will reduce system throughput.
  xa-transaction-manager-type: # XA Transaction manager type. Include: Atomikos, Narayana and Bitronix.

5.0.0-alpha

Data Source Configuration Item Explanation

schemaName: # Logic schema name.

dataSourceCommon:
  username: # Database username.
  password: # Database password.
  connectionTimeoutMilliseconds: # Connection timeout milliseconds.
  idleTimeoutMilliseconds: # Idle timeout milliseconds.
  maxLifetimeMilliseconds: # Maximum life milliseconds.
  maxPoolSize: 50 # Maximum connection count in the pool.
  minPoolSize: 1  # Minimum connection count in the pool.

dataSources: # Data sources configuration, multiple <data-source-name> available.
  <data-source-name>: # Different from ShardingSphere-JDBC configuration, it does not need to be configured with database connection pool.
    url: # Database URL.
rules: # Keep consist with ShardingSphere-JDBC configuration.
# ...

Override dataSourceCommon Configuration

If you want to override the ‘dataSourceCommon’ property, configure it separately for each data source.

dataSources: # Data sources configuration, multiple <data-source-name> available.
  <data-source-name>: # Different from ShardingSphere-JDBC configuration, it does not need to be configured with database connection pool.
    url: # Database URL.
    username: # Database username, Override dataSourceCommon username property.
    password: # Database password, Override dataSourceCommon password property.
    connectionTimeoutMilliseconds: # Connection timeout milliseconds, Override dataSourceCommon connectionTimeoutMilliseconds property.
    idleTimeoutMilliseconds: # Idle timeout milliseconds, Override dataSourceCommon idleTimeoutMilliseconds property.
    maxLifetimeMilliseconds: # Maximum life milliseconds, Override dataSourceCommon maxLifetimeMilliseconds property.
    maxPoolSize: 50 # Maximum connection count in the pool, Override dataSourceCommon maxPoolSize property.
    minPoolSize: 1  # Minimum connection count in the pool, Override dataSourceCommon minPoolSize property.

Authentication

It is used to verify the authentication to log in ShardingSphere-Proxy, which must use correct user name and password after the configuration of them.

authentication:
  users:
    root: # Self-defined username.
      password: root # Self-defined password.
    sharding: # Self-defined username.
      password: sharding # Self-defined password.
      authorizedSchemas: sharding_db, replica_query_db # Schemas authorized to this user, please use commas to connect multiple schemas. Default authorized schemas is all of the schemas.

Proxy Properties

props:
  sql-show: # Whether show SQL or not in log. Print SQL details can help developers debug easier. The log details include: logic SQL, actual SQL and SQL parse result.Enable this property will log into log topic ShardingSphere-SQL, log level is INFO.
  sql-simple: # Whether show SQL details in simple style.
  acceptor-size: # The max thread size of accepter group to accept TCP connections.
  executor-size: # The max thread size of worker group to execute SQL. One ShardingSphereDataSource will use a independent thread pool, it does not share thread pool even different data source in same JVM.
  max-connections-size-per-query: # Max opened connection size for each query.
  check-table-metadata-enabled: # Whether validate table meta data consistency when application startup or updated.
  query-with-cipher-column: # Whether query with cipher column for data encrypt. User you can use plaintext to query if have.
  proxy-frontend-flush-threshold: # Flush threshold for every records from databases for ShardingSphere-Proxy.
  proxy-transaction-type: # Default transaction type of ShardingSphere-Proxy. Include: LOCAL, XA and BASE.
  proxy-opentracing-enabled: # Whether enable opentracing for ShardingSphere-Proxy.
  proxy-hint-enabled: # Whether enable hint for ShardingSphere-Proxy. Using Hint will switch proxy thread mode from IO multiplexing to per connection per thread, which will reduce system throughput.

ShardingSphere-4.x

Data Source and Sharding Configuration Item Explanation

Data Sharding

schemaName: # Logic data schema name.

dataSources: # Data source configuration, which can be multiple data_source_name.
  <data_source_name>: # Different from Sharding-JDBC configuration, it does not need to be configured with database connection pool.
    url: # Database url connection.
    username: # Database username.
    password: # Database password.
    connectionTimeoutMilliseconds: 30000 # Connection timeout.
    idleTimeoutMilliseconds: 60000 # Idle timeout setting.
    maxLifetimeMilliseconds: 1800000 # Maximum lifetime.
    maxPoolSize: 65 # Maximum connection number in the pool.

shardingRule: #Omit data sharding configuration and be consistent with Sharding-JDBC configuration.

Read-write splitting

schemaName: # Logic data schema name.

dataSources: # Omit data source configurations; keep it consistent with data sharding.

masterSlaveRule: # Omit data source configurations; keep it consistent with Sharding-JDBC.

Data Masking

dataSource: # Ignore data sources configuration.

encryptRule:
  encryptors:
    <encryptor-name>:
      type: # encryptor type.
      props: # Properties, e.g. `aes.key.value` for AES encryptor.
        aes.key.value:
  tables:
    <table-name>:
      columns:
        <logic-column-name>:
          cipherColumn: # ciphertext column name.
          assistedQueryColumn: # AssistedColumns for query,when use ShardingQueryAssistedEncryptor, it can help query encrypted data.
          encryptor: # encrypt name.
props:
  query.with.cipher.column: true #Whether use cipherColumn to query or not

Overall Configuration Explanation

Orchestration

It is the same with Sharding-JDBC configuration.

Proxy Properties

# Omit configurations that are the same with Sharding-JDBC.

props:
  acceptor.size: # The thread number of accept connection; default to be 2 times of cpu core.
  proxy.transaction.type: # Support LOCAL, XA, BASE; Default is LOCAL transaction, for BASE type you should copy ShardingTransactionManager associated jar to lib directory.
  proxy.opentracing.enabled: # Whether to enable opentracing, default not to enable; refer to [APM](/en/features/orchestration/apm/) for more details.
  check.table.metadata.enabled: # Whether to check metadata consistency of sharding table when it initializes; default value: false.

Authentication

It is used to verify the authentication to log in Sharding-Proxy, which must use correct user name and password after the configuration of them.

authentication:
  users:
    root: # self-defined username.
      password: root # self-defined password.
    sharding: # self-defined username.
      password: sharding # self-defined password.
      authorizedSchemas: sharding_db, masterslave_db # schemas authorized to this user, please use commas to connect multiple schemas. Default authorizedSchemas is all of the schemas.

ShardingSphere-3.x

Data sources and sharding rule configuration reference

Data Sharding

schemaName: # Logic database schema name.

dataSources: # Data sources configuration, multiple `data_source_name` available.
  <data_source_name>: # Different with Sharding-JDBC, do not need configure data source pool here.
    url: # Database URL.
    username: # Database username.
    password: # Database password.
    autoCommit: true # The default config of hikari connection pool.
    connectionTimeout: 30000 # The default config of hikari connection pool.
    idleTimeout: 60000 # The default config of hikari connection pool.
    maxLifetime: 1800000 # The default config of hikari connection pool.
    maximumPoolSize: 65 # The default config of hikari connection pool.

shardingRule: # Ignore sharding rule configuration, same as Sharding-JDBC.

Read-write splitting

schemaName: # Logic database schema name.

dataSources: # Ignore data source configuration, same as sharding.

masterSlaveRule: # Ignore read-write splitting rule configuration, same as Sharding-JDBC.

Global configuration reference

Orchestration

Same as configuration of Sharding-JDBC.

Proxy Properties

# Ignore configuration which same as Sharding-JDBC.

props:
  acceptor.size: # Max thread count to handle client's requests, default value is CPU*2.
  proxy.transaction.enabled: # Enable transaction, only support XA now, default value is false.
  proxy.opentracing.enabled: # Enable open tracing, default value is false. More details please reference[APM](/en/features/orchestration/apm/).
  check.table.metadata.enabled: # To check the metadata consistency of all the tables or not, default value : false.

Authorization

To perform Authorization for Sharding Proxy when login in. After configuring the username and password, you must use the correct username and password to login into the Proxy.

authentication:
  username: root
  password: