数据库发现
使用实战
前置工作
- 启动 MySQL 服务
- 创建 MySQL 数据库(参考 ShardingProxy 数据源配置规则)
- 为 ShardingProxy 创建一个拥有创建权限的角色或者用户
- 启动 Zookeeper 服务 (为了持久化配置)
启动 ShardingProxy
- 添加
mode
和 authentication
配置参数到 server.yaml
(请参考相关 example 案例)
- 启动 ShardingProxy (相关介绍)
创建分布式数据库和分片表
- 连接到 ShardingProxy
- 创建分布式数据库
CREATE DATABASE discovery_db;
- 使用新创建的数据库
- 配置数据源信息
ADD RESOURCE ds_0 (
HOST=127.0.0.1,
PORT=3306,
DB=ds_0,
USER=root,
PASSWORD=root
),ds_1 (
HOST=127.0.0.1,
PORT=3306,
DB=ds_1,
USER=root,
PASSWORD=root
),ds_2 (
HOST=127.0.0.1,
PORT=3306,
DB=ds_2,
USER=root,
PASSWORD=root
);
- 创建数据库发现规则
CREATE DB_DISCOVERY RULE group_0 (
RESOURCES(ds_0,ds_1),
TYPE(NAME=mgr,PROPERTIES(groupName='92504d5b-6dec',keepAliveCron=''))
);
- 修改数据库发现规则
ALTER DB_DISCOVERY RULE group_0 (
RESOURCES(ds_0,ds_1,ds_2),
TYPE(NAME=mgr,PROPERTIES(groupName='92504d5b-6dec' ,keepAliveCron=''))
);
- 删除数据库发现规则
DROP DB_DISCOVERY RULE group_0;
- 删除数据源
DROP RESOURCE ds_0,ds_1,ds_2;
- 删除分布式数据库
DROP DATABASE discovery_db;
注意事项
- 当前,
DROP DATABASE
只会移除逻辑的分布式数据库
,不会删除用户真实的数据库。
DROP TABLE
会将逻辑分片表和数据库中真实的表全部删除。
CREATE DATABASE
只会创建逻辑的分布式数据库
,所以需要用户提前创建好真实的数据库。