mycat操作mysql示例之分库
准备工作:
服务器192.168.96.12,centos7, jdk,mysql5.7,mycat1.6.x,navicat
搭建步骤:
1.在服务器192.168.96.12服务器上安装mysql数据库,并且使用GRANT REPLICATION SLAVE ON *.* to 'root'@'%' identified by '1328174';FLUSH PRIVILEGES;命令给mysql赋权,这样子才可远程访问mysql服务器. 为了保险,修改mysql配置文件,设置Mysql大小写不敏感,vi /etc/my.cnf,在[mysqld]后面添加:lower_case_table_names=1
2.在mysql服务器上安装三个分片数据库;
CREATE database db1;
CREATE database db2;
CREATE database db3;
3.修改mycat的server.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<!-- - - Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License. - You
may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0
- - Unless required by applicable law or agreed to in writing, software -
distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the
License for the specific language governing permissions and - limitations
under the License. -->
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
<!--设置四个线程跑程序,不是必须--><system>
<property name="processors">4</property>
</system><!--配置一个root账号,此账号必须要能访问mysql服务器-->
<user name="root">
<property name="password">1328174</property><!--设置一个逻辑库,名称叫TESTDB,它必须要与schema.xml中名称一致-->
<property name="schemas">TESTDB</property>
</user>
</mycat:server>
4. 修改mycat的schema.xml的配置
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/"><!--逻辑库的名称-->
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
<!--表名,sharding-by-intfile是分库分表策略,详细信息要去rule.xml中去查看,然后就会发现它是按照employee表中的sharding_id字段来进行分片,而且体如何分片,则可在conf/partition-hash-int.txt配置--><table name="employee" primaryKey="ID" dataNode="dn1,dn2,dn3" rule="sharding-by-intfile" />
</schema><!---dataNode是节点,database是真实的mysql库->
<dataNode name="dn1" dataHost="localhost1" database="db1" />
<dataNode name="dn2" dataHost="localhost1" database="db2" />
<dataNode name="dn3" dataHost="localhost1" database="db3" />
<dataHost name="localhost1" maxCon="500" minCon="10" balance="0"
dbType="mysql" dbDriver="native"><!--心跳检测-->
<heartbeat>select user()</heartbeat><!--mysql服务器连接信息-->
<writeHost host="hostMaster" url="localhost:3306" user="root" password="1328174"></writeHost>
</dataHost>
</mycat:schema>
5. 启动mycat
bin/startup_nowrap.sh, 查看日志可以logs文件下.
6. 登录mycat
mysql -uroot -p1328174 -h192.168.96.12 -P8066 -DTESTDB
7. 创建employee表,然后插入数据
create table employee (id int not null primary key,name varchar(100),sharding_id int not null);
使用explain命令查看创建employee的信息:

插入数据:
insert into employee(id,name,sharding_id) values(1,'leader us',10000);
insert into employee(id,name,sharding_id) values(2, 'me',10010);
insert into employee(id,name,sharding_id) values(3, 'mycat',10000);
insert into employee(id,name,sharding_id) values(4, 'mydog',10010);
insert into employee(id,name,sharding_id) values(5, 'mimi',10020);
insert into employee(id,name,sharding_id) values(6, 'jetty',10020);
然后也可以使用explain查看insert的信息.
8.使用navicat查看数据
db1中有两条数据;

同样可以发现db2,db3中都有数据.达到了分库的目的.
同时,我们在mycat的TESTDB逻辑库中,却可以查询出employee表中的所有数据来.

最后补上hash-int分区策略的配置文件partition-hash-int.txt

mycat操作mysql示例之分库的更多相关文章
- MyCAT操作MySQL示例之E-R表
接着上一篇继续..... E-R 关系的数据分片策略,子表的记录与所关联的父表记录存放在同一个数据分片上,即子表依赖于父表,通过表分组(Table Group)保证数据 Join 不会跨库操作. 表分 ...
- Docker安装Mycat和Mysql进行水平分库分表实战【图文教学】
一.前言 小编最近公司有个新的需求,数据量比较大,要涉及到分库分表.大概了解了一些主流的中间件,使用和网上资料比较多的是Mycat和sharding-jdbc,小编比较倾向于Mycat.原因很简单就是 ...
- mycat操作MySQL第一篇:全局表
1.安装mycat,点击bin下面startup_nowrap.bat启动 2.客户端连接mycat:server.xml里面的 <!--连接mycat用户名和密码.数据库--> < ...
- SpringBoot 使用Mybatis操作mysql示例
1.准备数据库 创建数据库 create databases baodanjia; 创建帐号 create user 'baodanjia'@'%' identified by '123456' gr ...
- Mycat对MySQL进行垂直水平分表分库,读写分离
1. MyCAT概述 1.1 背景 随着传统的数据库技术日趋成熟.计算机网络技术的飞速发展和应用范围的扩充,数据库应用已经普遍建立于计算机网络之上.这时集中式数据库系统表现出它的不足: (1)集中 ...
- MySQL 高可用:mysql+mycat实现数据库分片(分库分表)
本文引用于http://blog.csdn.net/kk185800961/article/details/51147029 MySQL 高可用:mysql+mycat实现数据库分片(分库分表) 什么 ...
- Mycat安装并实现mysql读写分离,分库分表
Mycat安装并实现mysql读写分离,分库分表 一.安装Mycat 1.1 创建文件夹 1.2 下载 二.mycat具体配置 2.1 server.xml 2.2 schema.xml 2.3 se ...
- Docker安装Mycat并实现mysql读写分离,分库分表
Docker安装Mycat并实现mysql读写分离,分库分表 一.拉取mycat镜像 二.准备挂载的配置文件 2.1 创建文件夹并添加配置文件 2.1.1 server.xml 2.1.2 serve ...
- go操作redis和mysql示例
一:redis示例 使用redis的包是: github.com/garyburd/redigo/redis 1:编写第一个示例: 链接,设置,获取 redis_basic.go package ma ...
随机推荐
- Robot Framework安装部署详细教程
(转自“义甬君”) Robot Framework安装准备 说实话,在我玩了这么多自动化工具后,感觉Robot Framework所需的环境和安装过程是相对比较繁琐和复杂的.要真正搭建一套可以使用的R ...
- 接口自动化之ddt
接口自动化会用到数据驱动模式,也就是一个ddt模块 目录 1.环境准备 2.调用时标准格式 3.应用(结合excle来传值) 1.环境准备 首先,需要安装ddt模块 pip install ddt 2 ...
- 剑指offer(1):数组
1 写作计划 最近在看<剑指offer>,发现自己有很多的数据结构与算法的基础知识要复习,<好书一起读(131):让写作更好>中提到用写作倒逼阅读,我很是赞同.所以,计划以&l ...
- 编程字体Source Code Pro 免费下载
对于程序员来说,好的字体应该满足的基本条件: 字母和数字易于分辨,如: 英文字母o 和 阿拉伯数字 0 ,或者 英文字母 l 和 阿拉伯数字 1 ,两个单引号 '' 和双引号 ”. 字体等宽,保持对齐 ...
- 浅谈Java反射机制 之 获取类的 方法 和 属性(包括构造函数)
上一篇 获取 类 的字节码文件 我们讲到了获取类的字节码文件的三种方法 第三种方法通过getClass("全路径名")获取字节码文件最符合要求 1.获取构造方法 先贴上我们要获取的 ...
- 剑指offer--day11
1.1 题目:字符串的排列:输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba ...
- YOLOV3中Darknet中cfg文件说明和理解
今天将要说明的是Darknet中的cfg文件,废话少说,直接干!(以cfg/yolov3.cfg为例,其它类似) [net] ★ [xxx]开始的行表示网 ...
- openstack 制作镜像以及windows向Linux中通过xshell传文件
慢慢的也要把openstack一些相关的笔记整理上来了 之前由于主要是在看horizon 实验室搭建的openstack平台并没有怎么实际的用起来,前几天别的同学要用来测试大数据的相关服务,才把这些内 ...
- centos7安装配置jdk、tomcat
centos7安装jdk1.8 1.新建文件夹java,上传文件jdk-8u111-linux-x64.tar.gz到java文件夹 2.解压tar包: tar -zxvf jdk-8u111-lin ...
- python+selenium下拉列表option对象操作方法一
参考官方文档:https://selenium.dev/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.select ...