MyCat1.6 Mysql集群Step by Step
来源:互联网 发布:建筑学软件图片 编辑:程序博客网 时间:2024/05/13 11:53
1:前提条件
首先下载MyCat的文件。
Mycat-server-1.6-RELEASE-20161028204710-win.tar.gz
分别解压的D盘根目录
D:\mycat
在mysql数据库上创建3个数据库db1,db2,db3让我们来看看mycat如何执行分库的!(切记这一步必须执行,否则后续步骤可能会出现失败!)
2:配置安装
修改conf/schema.xml文件,关于dataHost的配置,都使用localhost作为目标服务器!
<dataHost name="localhost_3306" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"><heartbeat>select user()</heartbeat><writeHost host="hostw3306" url="localhost:3306" user="root" password="root"><readHost host="hostr3306" url="localhost:3306" user="root" password="root" /></writeHost> </dataHost>
修改一下mycat的root账号的密码
<user name="root"><property name="password">root</property><property name="schemas">TESTDB</property></user>
修改完成后,保证MySql是运行状态,执行命令,启动mycat。
D:\mycat\bin>mycat start
注:先不要做其他的改动否则可能导致启动失败!
正常启动后,执行以下命令
d:\mysql\bin>mysql -uroot -proot -hlocalhost -P8066
这样就连接上mycat了
mysql> show databases;+----------+| DATABASE |+----------+| TESTDB |+----------+1 rows in set (0.00 sec)
会列出只有TESTDB这一个数据库
mysql> show tables;+------------------+| Tables in TESTDB |+------------------+| company || customer || customer_addr || employee || goods || hotnews || orders || order_items || travelrecord |+------------------+
列出了当前在Schema.xml配置的全部表名,但是这里注意,这些表名仅仅是声明了,还没有真正的创建。
3:测试
增加3个DataHost节点
<dataHost name="localhost_3306" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="hostw3306" url="localhost:3306" user="root" password="root"> <readHost host="hostr3306" url="localhost:3306" user="root" password="root" /> </writeHost> </dataHost><dataHost name="localhost_3307" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="hostw3307" url="localhost:3307" user="root" password="root"> <readHost host="hostr3307" url="localhost:3307" user="root" password="root" /> </writeHost> </dataHost><dataHost name="localhost_3308" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="hostw3308" url="localhost:3308" user="root" password="root"> <readHost host="hostr3308" url="localhost:3308" user="root" password="root" /> </writeHost></dataHost>
增加3个dataNode节点
<dataNode name="dn1" dataHost="localhost_3306" database="db1" /><dataNode name="dn2" dataHost="localhost_3306" database="db2" /><dataNode name="dn3" dataHost="localhost_3306" database="db3" />
修改employee的table描述
<table name="employee" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile" />
接下来启动Mycat。
连接mycat客户端:
d:\mysql\bin>mysql -uroot -proot -hlocalhost -P8066
在连接mycat的客户端执行如下语句。
mysql>use TESTDB;
创建employee表
mysql>create table employee (id int not null primary key,name varchar(100),sharding_id int not null);
注意:sharding_id int not null 这个是分表的策略,这个我们后面讨论。
进入db1和db2,你会发现两个库里都存在一个叫employee的表。
但是db3却没有任何表。这个都是由于我们的配置导致的。
<table name="employee" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile" />
name="employee" 这个是表的名称primaryKey="ID" 这个是主键dataNode="dn1,dn2" 这个是dataNode节点,物理库对应的是db1,db2rule="sharding-by-intfile" 分片规则,根据sharding_id进行区分。
关于分片规则的描述可以看看rule.xml文件.
<tableRule name="sharding-by-intfile"><rule><columns>sharding_id</columns>字段名称<algorithm>hash-int</algorithm>分割算法</rule></tableRule>
执行数据插入:
mysql>insert into employee(id,name,sharding_id) values(1,'aaa',10000);mysql>insert into employee(id,name,sharding_id) values(2, 'bbb',10010);mysql>insert into employee(id,name,sharding_id) values(3, 'ccc',10000);mysql>insert into employee(id,name,sharding_id) values(4, 'dddd',10010);
进入db1和db2,你会发现这两个库里分别添加了数据。
OK 到目前为止,默认的测试用例我们已经运行起来了。基本的分片思路也清晰了,简单描述就是。
标签描述的就是实际的数据库的映射信息。
标签描述的是物理服务器的信息。
4:添加我们自己的Schema
定义我们自己的数据库
<schema name="MYDB" checkSQLschema="false" sqlMaxLimit="100"><table name="test_table" primaryKey="ID" autoIncrement="true" dataNode="dn4,dn5,dn6" rule="mod-long" /></schema>
在3306,3307,3308中创建testdb的数据库。
增加新的dataNode,主要是为了增加一个同名新库。
<dataNode name="dn4" dataHost="localhost_3306" database="testdb" /><dataNode name="dn5" dataHost="localhost_3307" database="testdb" /><dataNode name="dn6" dataHost="localhost_3308" database="testdb" />
接下来是关键的一步,我在这里搞了好一阵子!
修改Server.xml文件
<user name="root"><property name="password">root</property><property name="schemas">TESTDB,MYDB</property></user>
这里是逗号分隔的,很关键。
这样就完成配置部分了。
启动mycat。
连接mycat客户端:
mysql> show databases;+----------+| DATABASE |+----------+| MYDB || TESTDB |+----------+2 rows in set (0.00 sec)
发现两个库都展示出来了。
接下来连接MYDB。
mysql>use MYDB;
mysql>create table test_table(id int not null primary key,name varchar(100));
查看三个DB实例,发现都已经创建好了test_table这个表。
mysql>insert into test_table(id,name) values(1,'aaa');mysql>insert into test_table(id,name) values(2, 'bbb');mysql>insert into test_table(id,name) values(3, 'ccct');mysql>insert into test_table(id,name) values(4, 'dddd');
查看一下三个不同的DB实例上的test_table,发现数据已经有了!
OK到目前为止,我们的mycat已经运行正常了!
Mycat的管理工具有时间再分享!
- MyCat1.6 Mysql集群Step by Step
- Proftpd MySQL [Step by Step]
- Apache+php+MySQL安装 Step By Step
- Apache+php+MySQL安装 Step By Step
- Apache+php+MySQL安装 Step By Step
- Apache+php+MySQL安装 Step By Step
- Apache+php+MySQL安装 Step By Step
- MySQL Cluster配置step by step
- step by step 配置mysql复制
- 深入MySQL源码—Step By Step
- MySQL step by step 安装实战
- Little Painter Step by Step-Day 6
- NHibernate Step By Step(6)-关联关系
- NHibernate Step by Step
- OGRE step by step
- step by step
- MinGW Step by Step
- 大杂烩---Step by Step
- replaceAll(String regex, String replacement)
- CentOS 7自定义开机启动设置
- BOOL / bool / Boolean / NSCFBoolean
- C#窗体工程建立后如何修改工程文件名和命名空间
- 牛客网-二进制中1的个数
- MyCat1.6 Mysql集群Step by Step
- [CODEVS1288]埃及分数(迭代加深搜索)
- windows server 2012各版本对比
- 顶级域名,子域名,二级域名的区别
- Android常见加密算法(DES篇)
- 基于深度图像的行人检测、跟踪技术研究_周波_2014
- 跟波澜死磕Swift3基础篇③ -变量和数据类型 -第一节
- DSP实验
- linux ehci hcd之qh_urb_transaction()分析(二)