大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
上次介绍Mycat概念时, 说到了分片表, 下面就从配置一个分片表入手简述Mycat的配置.
弋江ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
schema.xml是首先遇到的配置文件, 其管理着Mycat的逻辑库, 表, 分片规则, 分片节点和节点主机, 如此内容分别呈现在相应的标签中, 配置过程即对这些标签的设置.
...
select user()
select user()
在对dataHost标签设置时,后端MySQL实例要创建好zzzz用户.
mysql> create user 'zzzz'@'192.168.4.%' identified by 'zzzz';
mysql> grant select, insert, update, delete, execute, alter, create on test1.* to 'zzzz'@'192.168.4.%';
由于tb1是分片表, 还需说明分片字段和分片算法, 配置rule.xml文件.
id
mod-long
2
至此tb1表配置完了, 要通过Mycat访问该表,还要一个简单权限, 配置server.xml文件, 该文件还包括了Mycat的系统配置, 和调优参数.
test_user
testdb
现在就可以登陆Mycat, 创建tb1的表结构了, 该步骤也可直接到后端实例上做, 要有多个节点的话, 会比较麻烦, 所以才给zzzz用户赋予了create权限, 直接通过Mycat创建.
$ mysql -h292.168.4.184 -P8066 -utest_user -ptest_user
mysql> create table tb1(id int auto_increment primary key, user_name varchar(30) not null default '');
此时就可以使用tb1表了, 插入条数据, 通过日志看下路由过程, 为了看到比较详细的日志, 先将日志级别调整为debug, 配置log4j.xml文件.
mysql> insert into tb1 select null, 'abc';
ERROR 1064 (HY000): partition table, insert must provide ColumnList
mysql> insert into tb1(id, user_name) values(null, 'abc');
ERROR 1064 (HY000): For input string: "NULL"
mysql> insert into tb1(id, user_name) values(7, 'abc');
Query OK, 1 row affected (0.00 sec)
03/18 08:33:04.221 DEBUG [$_NIOREACTOR-2-RW] (ServerQueryHandler.java:56) -ServerConnection [id=2, schema=testdb, host=192.168.4.184, user=test_user,txIsolation=3, autocommit=true, schema=testdb]insert into tb1(id, user_name) values(7, 'abc')
03/18 08:33:04.222 DEBUG [$_NIOREACTOR-2-RW] (NonBlockingSession.java:113) -ServerConnection [id=2, schema=testdb, host=192.168.4.184, user=test_user,txIsolation=3, autocommit=true, schema=testdb]insert into tb1(id, user_name) values(7, 'abc'), route={
1 -> dnTest2{insert into tb1(id, user_name) values(7, 'abc')}
} rrs
03/18 08:33:04.222 DEBUG [$_NIOREACTOR-2-RW] (MySQLConnection.java:459) -con need syn ,total syn cmd 2 commands SET names utf8;SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;schema change:false con:MySQLConnection [id=5, lastTime=1521333184222, user=zzzz, schema=test2, old shema=test2, borrowed=true, fromSlaveDB=false, threadId=68, charset=utf8, txIsolation=0, autocommit=true, attachment=dnTest2{insert into tb1(id, user_name) values(7, 'abc')}, respHandler=SingleNodeHandler [node=dnTest2{insert into tb1(id, user_name) values(7, 'abc')}, packetId=0], host=192.168.4.151, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=true]