mycat小白分片初体验
来源:互联网 发布:算法 知乎 编辑:程序博客网 时间:2024/06/14 09:34
本文主要内容为部署MySQL,Mycat,完成Travelrecord表的创建、查询、路由分析。
其实是学习mycat入门的第一个作业,写这个作业的时候,查阅了很多篇文档,才完成,所以想写一篇适合小白使用的傻瓜文档,大神们请出门左转。
楼主还是6年前用过mysql,基本忘光了,mycat也是初次使用,写的比较细。
1.安装mysql
1.1安装MySQL
下载mysql-5.6.37-winx64.zip(https://dev.mysql.com/downloads/mysql/5.5.html#downloads
),直接解压,复制到某个目录,比如C:\mysql-5.6.37-winx64
1)my.ini配置
将解压目录下默认文件my-default.ini拷贝一份,改名 my.ini
复制下面的配置信息到 my.ini保存
#如果没有my-default.ini,可自己新建my.ini或者从其他地方中获取
#########################################################
[client]
port=3306
default-character-set=utf8
[mysqld]
port=3306
character_set_server=utf8
basedir= C:\mysql-5.6.37-winx64
#解压目录
datadir= C:\mysql-5.6.37-winx64\data
#解压目录下data目录
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[WinMySQLAdmin]
C:\mysql-5.6.37-winx64\bin\mysqld.exe
#########################################################
2)增加环境变量
新建MYSQL_HOME,值为C:\mysql-5.6.37-winx64
PATH中增加%MYSQL_HOME%\bin
3)将mysql注册为windows系统服务
从控制台进入到MySQL解压目录下的 bin目录下,
比如 cd C:\mysql-5.6.37-winx64
输入服务安装命令:
mysqld installMySQL --defaults-file=" C:\mysql-5.6.37-winx64\my.ini"
#移除服务命令为:mysqld remove
1.2启动MySQL服务, 设置root用户密码;创建test/test用户
设置root用户密码
mysql –uroot
mysql>show databases;
mysql>use mysql;
mysql>UPDATE user SETpassword=PASSWORD("123456") WHERE user='root';
mysql>FLUSH PRIVILEGES;
mysql>QUIT
查看当前用户
SELECT User, Host, Password FROM mysql.user;
新增test用户(后面的测试要用到这个用户)
insert intomysql.user(Host,User,Password) values("localhost","test",password("test"));
我的机器这一句报错,提示插入失败,按提示写了下面的命令insert intomysql.user(Host,User,Password,ssl_cipher, x509_issuer,X509_subject)values("localhost","test",password("test"),""," "," ");
还有一些权限默认为 N了,记得到mysql 的user表里面,把test这一行的一些属性设为Y.
都设置成功后,退出来,再用test用户进来看看
mysql -utest -p
2安装Mycat
2.1本机预装JDK1.7或者以上
2.2下载Mycatfor widows ,我下载的是1.6
网址:http://dl.mycat.io
解压之后复制mycat目录到某个盘根目录,比如C盘。
cd c:\mycat\bin
mycatstart
常用命令:mycat status
2.3 mycat启动错误
错误一:Error: missing `server' JVM at `C:\Program Files (x86)\Java\jre1.8.0_131\bin\server\jvm.dll'.
wrapper.java.command= C:\Java\jdk1.8.0_92\bin\java.exe
2.4配置Mycat连接mysql
修改MYCAT_HOME/conf/schema.xml文件,修改dataHost对应的连接信息(这里的用户名密码是要访问的mysql的用户名密码):
修改MYCAT_HOME/conf/servel.xml
3分片实验
3.1用mysql test用户创建db1,db2,db3
mysql -utest –p
或mysql -utest -p -P3306
3.2用mycat插入数据
mysql -utest -p –P8066
(mycat 使用的是8066 端口,使用这个命令之前,请确保mycat 服务打开了,比如进入mycat目录,mycat status看看)
use TESTDB;
分片规则定义在MYCAT_HOME/conf/schema.xml,Travelrecord 分片规则是auto-sharding-long,并且会分到dn1,dn2,dn3三个data node,对应物理库名为db1,db2,db3.
创建表
create table travelrecord (id bigint not null primarykey,user_id varchar(100),traveldate DATE, fee decimal,days int);
插入数据insert into travelrecord(id,user_id,traveldate,fee,days) values(100002, 'sq', '2017-08-08',500.0,2);
insert into travelrecord(id,user_id,traveldate,fee,days) values(2000001, 'alice', '2017-08-08',500.0,3);
insert into travelrecord(id,user_id,traveldate,fee,days) values(5008, 'xh', '2017-08-08',400.0,3);
insert into travelrecord(id,user_id,traveldate,fee,days) values(60001, 'xy', '2017-08-08',400.0,3);
insert into travelrecord(id,user_id,traveldate,fee,days) values(70001, 'jerry', '2017-08-08',400.0,3);
insert into travelrecord(id,user_id,traveldate,fee,days) values(800001, 'jerry', '2017-08-08',400.0,3);
insert into travelrecord(id,user_id,traveldate,fee,days) values(9000004, 'hi', '2017-08-08',250.0,3);
insert into travelrecord(id,user_id,traveldate,fee,days) values(9000104, 'hinihao', '2017-08-08',250.0,3);
insert into travelrecord(id,user_id,traveldate,fee,days) values(10000004, 'hello', '2017-08-08',600.0,3);
insert into travelrecord(id,user_id,traveldate,fee,days) values(10010005, 'helloworld', '2017-08-08',300.0,1);
3.3查询数据
在mycat后台的db上面,路由看到是分在3个片上面,explain select * from Travelrecord;
单个路由分析:
explain select * from Travelrecord where id=100002 ;
explain select * from Travelrecord where id=9000104 ;
explain select * from Travelrecord where id=10000004;
3.4回到mysql,看物理库的数据
exit;mysql –utest –p
select * from db1.travelrecord;
select * from db2.travelrecord;
select * from db3.travelrecord;
致此,路由分析完成。
欢迎拍砖。
- mycat小白分片初体验
- mycat安装及分片初体验
- mycat分片
- Mycat学习实战-Mycat分片
- mycat 离散分片 -> 枚举分片
- mycat 离散分片(枚举分片)
- mycat分片JOIN,分片规则
- mycat+mysql分片
- mycat分片规则
- Mycat 月分片方法
- mycat常用分片规则
- MyCat分片算法学习
- mycat 分片规则
- mycat+mysql分片
- mycat分片部署例子
- mycat初使用体验与分库分表
- Centos下Mysql之Mycat初体验
- Mycat范围分片设置默认分片
- python下多线程简单代码示例
- 关于python3的编码问题
- 配置GDB+GdbServer远程调试环境
- Scala学习之一函数式编程进阶
- 磁盘调度算法
- mycat小白分片初体验
- Activity那些事
- 搬瓦工VPS+LNMP+Wordpress快速搭建个人网站
- 训练日记-11
- 博客搬家
- Python 爬虫个人记录(一)豆瓣电影250
- UVALive
- linux安装jdk(CentOS)
- 【FFT】BZOJ2179 FFT快速傅立叶