方案一:
1 DataHost:
1) 创建DataHost:create DataHost mysql_1(dataSource, address, user, password, minCon, maxCon, maxRetryCount) values (source_1, 192.168.1.11:3306, root, 123456, 10, 100, 3);
2) 删除DataHost:delete DataHost mysql_1;
3) 修改DataHost:update DataHost set password = 654321 where DataHostName = mysql_1;
4) 查询DataHost:select * from DataHost;
2 DataSource:
1) 创建DataSource:create DataSource source_1(repType, switchType, balanceType) values (MASTER_SLAVE, SWITCH, BALANCE_ALL_READ);
2) 删除DataSource:delete DataSource source_1;
3) 修改DataSource:update DataSource set password = 654321 where DataSourceName = source_1;
4) 查询DaraSource:select * from DataSource;
3 DataNode:
1) 创建DataNode:create DataNode dn1(DataSource, DataBases) values(source_1, db1); /**/
2) 删除DataNode:delete DataNode dn1 where DataSource = source_1;
3) 修改DataNode:update DataNode set DataBases = db2 where DataSource = source_1 and DataNode = dn1;
4) 查询DataNode:select * from DataNode;
4 DataBase(schema):
格式同上
方案二:
1 DataHost:
1) 创建DataHost:@@config DataHost dataSource = source_1, name = mysql_1, address = 192.168.1.11:3306, user = root, password = 123456, minCon = 10, maxCon = 100, maxRetryCount = 3;
2) 删除DataHost:@@delete DataHost name = mysql_1;
3) 修改DataHost:@@modify DataHost dataSource = source_1, name = mysql_1, password = 654321, minCon = 20;
4) 查询DataHost:
@@show DataHosts;
@@show DataHosts dataSource = source_1;
@@show DataHosts dataSource = source_1, name = mysql_1;
2 DataSource:
1) 创建DataSource:@@config DataSource name = source_1, repType = MASTER_SLAVE, switchType = SWITCH, balanceType = BALANCE_ALL_READ;
2) 删除DataSource:@@delete DataSource name = source_1;
3) 修改DataSource:@@modify DataSource name = source_1, switchType = NOSWITCH;
4) 查询DaraSource:
@@show DataSources;
@@show DataSources dataSource = source_1;
@@show DataHosts dataSource = source_1, name = mysql_1;
3 DataNode:
1) 创建DataNode:@@config DataNode name = dn1, DataSource = source_1, DataBases = db1;
2) 删除DataNode:@@delete DataNode name = dn1;
3) 修改DataNode:@@modify DataNode name = dn1, name = dn2 DataBases = db2;
4) 查询DataNode:
@@show DataNodes;
@@show DataNodes DataSource = source_1;
@@show DataNode name = dn1;
4 DataBase(schema):
格式同上
方案三:
1 效仿阿里云DRDS,Mycat定位为分布式数据库中间件,不负责实体库的主从切换、读写分离的sql路由(这两项划为云数据库功能范畴,后面再说云数据库的概念)。只有提供DataHost、DataBase和Table的定制。
2 Mycat每配置一个DataHost时指定每个DataHost上的database个数,并自动在DataHost上创建database;Mycat在DataHost上创建database时记录每个database的属性。
3 Mycat创建DataBase时指定使用哪些database;
4 Mycat创建Table时可指定分库键或指定分库键和分表键;也可不指定分库分表键;此时认为表为全局表;
5 云数据库(CRDS):利用mysql的binlog配置主从复制和开源的keepalive实现多副本单实例(暴露的虚拟mysql IP和Prot对应后端的多mysql IP和Prot)