文章目录
简介1 进入conf目录,修改server.yaml2 进入conf目录,修改config-sharding.yaml2.1 拷贝mysql驱动到Sharding-Proxy的lib目录2.2 修改 config-sharding.yaml 文件2.3 本地创建一个数据库
3 启动Sharding-Proxy服务4 通过Sharding-Proxy启动端口进行连接4.1 打开Navicat for Mysql 15 连接sharding-proxy4.2 进行sql命令操作看到只有一个库4.3 在sharding_db库中创建表4.4 向表中添加一条记录
5 回到本地3306端口数据库中,看到已经创建好了表和添加了数据
简介
定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。 目前先提供MySQL/PostgreSQL版本,它可以使用任何兼容MySQL/PostgreSQL协议的访问客户端(如:MySQL Command Client, MySQL Workbench, Navicat等)操作数据,对DBA更加友好。 向应用程序完全透明,可直接当做MySQL/PostgreSQL使用。 适用于任何兼容MySQL/PostgreSQL协议的的客户端。
1 进入conf目录,修改server.yaml
authentication:
users:
root:
password: root
sharding:
password: sharding
authorizedSchemas: sharding_db
props:
max.connections.size.per.query: 1
acceptor.size: 16
executor.size: 16
proxy.frontend.flush.threshold: 128
proxy.transaction.type: LOCAL
proxy.opentracing.enabled: false
query.with.cipher.column: true
sql.show: false
2 进入conf目录,修改config-sharding.yaml
2.1 拷贝mysql驱动到Sharding-Proxy的lib目录
将mysql 驱动 mysql-connector-java-8.0.15.jar 复制到Sharding-Proxy的lib目录中
2.2 修改 config-sharding.yaml 文件
schemaName: sharding_db
dataSources:
ds_0:
url: jdbc
:mysql
://127.0.0.1
:3306/edu1
?serverTimezone=UTC
&useSSL=false
username: root
password: chengwen
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
shardingRule:
tables:
t_order:
actualDataNodes: ds_$
{0}.t_order_$
{0..1
}
tableStrategy:
inline:
shardingColumn: order_id
algorithmExpression: t_order_$
{order_id % 2
}
keyGenerator:
type: SNOWFLAKE
column: order_id
bindingTables:
- t_order
defaultDatabaseStrategy:
inline:
shardingColumn: user_id
algorithmExpression: ds_$
{0}
defaultTableStrategy:
none:
2.3 本地创建一个数据库
CREATE SCHEMA `edu1
` DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
;
3 启动Sharding-Proxy服务
进入bin目录,执行命令启动Sharding-Proxy
chengwen@chengwen bin % ./start.sh
Starting the Sharding-Proxy
...
Please check the STDOUT file: /Users/chengwen/apache-shardingsphere-incubating-4.0.1-sharding-proxy-bin/logs/stdout.log
chengwen@chengwen bin %
查看日志,出现端口号3307(默认),ACTIVE表示成功
[INFO ] 00:27:18.350 [nioEventLoopGroup-2-1] i.n.handler.logging.LoggingHandler - [id: 0x7014d160] REGISTERED
[INFO ] 00:27:18.352 [nioEventLoopGroup-2-1] i.n.handler.logging.LoggingHandler - [id: 0x7014d160] BIND: 0.0.0.0/0.0.0.0:3307
[INFO ] 00:27:18.355 [nioEventLoopGroup-2-1] i.n.handler.logging.LoggingHandler - [id: 0x7014d160, L:/0.0.0.0:3307] ACTIVE
4 通过Sharding-Proxy启动端口进行连接
4.1 打开Navicat for Mysql 15 连接sharding-proxy
4.2 进行sql命令操作看到只有一个库
4.3 在sharding_db库中创建表
create table if not exists ds_0
.t_order
(
order_id
bigint not null,
user_id
int not null,
status varchar(50),
primary key(order_id
)
);
4.4 向表中添加一条记录
USE sharding_db
;
show tables;
select * from t_order
;
insert into t_order
(order_id
,user_id
,status) values (11,1,'init');
select * from t_order
;
5 回到本地3306端口数据库中,看到已经创建好了表和添加了数据
本地库edu1需要自己创建,数据表和数据记录会由sharding-proxy自动创建