Mycat的简易安装及测试
1.环境
OS版本 CentOS release 6.5 (Final) 64bit
DB版本 Mysql 5.6.37
Mycat 1.6
jdk1.7及以上版本 2.实战部署
1.创建用户及用户组
[root@mysql01 ~]# groupadd mycat
[root@mysql01 ~]# useradd -g mycat mycat 2.上传解压JDK
Java Oracle官方下载地址为:
http://www.oracle.com/technetwork/java/javase/archive-139210.html [mycat@mysql01 ~]$ tar zxvf jdk-7u80-linux-x64.tar.gz
3.上传解压mycat
[mycat@mysql01 ~]$ tar zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz 4.指定目录安装mycat及jdk
[root@mysql01 mycat]# mv mycat /usr/local/
[root@mysql01 mycat]# mv jdk1.7.0_80 /usr/local/mycat/ 5.配置jdk环境变量
export JAVA_HOME=/usr/local/mycat/jdk1.7.0_80
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 6.创建测试库(mycat 对db1 db2 db3做了默认配置)
mysql> create database db1;
mysql> create database db2;
mysql> create database db3; 7.配置mycat到数据库的连接(schema.xml)
#手动测试 通过url user password 能链接到测试库
<writeHost host="hostM1" url="localhost:3306" user="root" password="123456"> 8.启动mycat
[mycat@mysql01 bin]$ ./mycat start
Starting Mycat-server...
[mycat@mysql01 bin]$ 日志抛出异常
[mycat@mysql01 logs]$ more wrapper.log
STATUS | wrapper | 2017/09/27 22:34:57 | --> Wrapper Started as Daemon
STATUS | wrapper | 2017/09/27 22:34:57 | Launching a JVM...
ERROR | wrapper | 2017/09/27 22:35:03 | JVM exited while loading the application.
INFO | jvm 1 | 2017/09/27 22:35:03 | Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException
: mysql01: mysql01: Name or service not known
STATUS | wrapper | 2017/09/27 22:35:07 | Launching a JVM...
[mycat@mysql01 logs]$ 9.修改hosts文件,绑定主机名
[root@mysql01 3306]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 127.0.0.1 mysql01 10.再次启动mycat
[mycat@mysql01 bin]$ ./mycat start
Starting Mycat-server...
[mycat@mysql01 bin]$ 日志未见异常,启动成功
[mycat@mysql01 bin]$ ps -ef|grep mycat
mycat 3374 1 0 22:39 ? 00:00:00 /usr/local/mycat/bin/./wrapper- 3.测试
1.利用mycat连接mysql数据库
#在mysql系统用户下执行登陆,此时的mysql相当于客户端
[mysql@mysql01 ~]$ mysql -uroot -p123456 -h127.0.0.1 -P8066 -DTESTDB
Warning: Using a password on the command line interface can be insecure.
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.29-mycat-1.6-RELEASE-20161028204710 MyCat Server (OpenCloundDB) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> 其中8066是mycat的监听端口,其中-u,-p,-h分别是用户名,密码和主机,-D是连接的逻辑库。
这里的端口,用户名,密码,逻辑库都是在 server.xml 文件中配置的 2.创建Travelrecord表
mysql> create table travelrecord (id bigint not null primary key,user_id varchar(100),traveldate DATE, fee decimal,days int);
Query OK, 0 rows affected (0.20 sec)
mysql>
至于表名为什么是travelrecord,这个和配置文件schema.xml的配置有关 3.插入数据
mysql> insert into travelrecord(id,user_id,traveldate,fee,days) values(1,'Victor',20160101,100,10);
mysql> insert into travelrecord(id,user_id,traveldate,fee,days) values(5000001,'Job',20160102,100,10);
mysql> insert into travelrecord(id,user_id,traveldate,fee,days) values(10000001,'Slow',20160103,100,10);
mysql>
至于ID为什么取三个值,这个与conf目录下autopartition-long.txt的定义有关,这个文件主要定义auto-sharding-long的规则。
这里主要是测试在id取不同区间的值时,分片的效果。 4.查看分片效果
#重新登陆到mysql上查询(不要通过mycat查询)
[mysql@mysql01 ~]$ mysql -uroot -p123456 -h 127.0.0.1 -P 3306 mysql> select * from db1.travelrecord;
+----+---------+------------+------+------+
| id | user_id | traveldate | fee | days |
+----+---------+------------+------+------+
| 1 | Victor | 2016-01-01 | 100 | 10 |
+----+---------+------------+------+------+
1 row in set (0.00 sec) mysql> select * from db2.travelrecord;
+---------+---------+------------+------+------+
| id | user_id | traveldate | fee | days |
+---------+---------+------------+------+------+
| 5000001 | Job | 2016-01-02 | 100 | 10 |
+---------+---------+------------+------+------+
1 row in set (0.00 sec) mysql> select * from db3.travelrecord;
+----------+---------+------------+------+------+
| id | user_id | traveldate | fee | days |
+----------+---------+------------+------+------+
| 10000001 | Slow | 2016-01-03 | 100 | 10 |
+----------+---------+------------+------+------+
1 row in set (0.00 sec) mysql> 数据分片插入成功 4.查看MyCAT具体会将数据分配到哪个节点上 mysql> explain insert into travelrecord(id,user_id,traveldate,fee,days) values(1,'Victor',20160101,100,10);
+-----------+----------------------------------------------------------------------------------------------+
| DATA_NODE | SQL |
+-----------+----------------------------------------------------------------------------------------------+
| dn1 | insert into travelrecord(id,user_id,traveldate,fee,days) values(1,'Victor',20160101,100,10) |
+-----------+----------------------------------------------------------------------------------------------+
1 row in set (0.00 sec) mysql> explain insert into travelrecord(id,user_id,traveldate,fee,days) values(5000001,'Job',20160102,100,10);
+-----------+-------------------------------------------------------------------------------------------------+
| DATA_NODE | SQL |
+-----------+-------------------------------------------------------------------------------------------------+
| dn2 | insert into travelrecord(id,user_id,traveldate,fee,days) values(5000001,'Job',20160102,100,10) |
+-----------+-------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec) mysql> explain insert into travelrecord(id,user_id,traveldate,fee,days) values(10000001,'Slow',20160103,100,10);
+-----------+---------------------------------------------------------------------------------------------------+
| DATA_NODE | SQL |
+-----------+---------------------------------------------------------------------------------------------------+
| dn3 | insert into travelrecord(id,user_id,traveldate,fee,days) values(10000001,'Slow',20160103,100,10) |
+-----------+---------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec) mysql> 语法其实蛮简单,就是SQL语句前加上explain语句 5.关于配置文件,conf目录下主要以下三个需要熟悉 server.xml是Mycat服务器参数调整和用户授权的配置文件
schema.xml是逻辑库定义和表以及分片定义的配置文件
rule.xml是分片规则的配置文件
Mycat的简易安装及测试的更多相关文章
- MyCat安装与测试教程 超详细!
MyCat安装与测试教程 超详细! MyCat基础知识 一.什么是MYCAT? 1. 一个彻底开源的,面向企业应用开发的大数据库集群 2. 支持事务.ACID.可以替代MySQL的加强版数据库 3. ...
- mycat安装和测试
mycat安装和测试 一. 环境准备 本机环境是三台centos6.5 IP 主机名 数据库名 安装软件 192.168.17.4 master db1 mycat,mysql 192.168.17 ...
- LAMP简易安装
看,老鸟绕道–LAMP简易安装 导读 LAMP是企业中最常用的服务,也是非常稳定的网站架构平台.其中L-指的是Linux,A-指的是Apache,m-指的是mysql或者marriDB,p-php.相 ...
- Oracle client客户端简易安装网上文档一
Oracle client客户端简易安装网上文档一-------------------------------------------------------------------------一. ...
- VMware Tools的简易安装---解决Ubuntu 14.10不能满屏显示问题
由于使用的VMware WorkStation是中文破解版,安装时又是简易安装,因此VMware Tools并没有安装上,导致Ubuntu 14.10在VMware中装上之后,并不能满屏显示,如图1所 ...
- my SQL下载安装,环境配置,以及密码忘记的解决,以及navicat for mysql下载,安装,测试连接
一.下载 在百度上搜索"mysql-5.6.24-winx64下载" 二.安装 选择安装路径,我的路径“C:\Soft\mysql-5.6.24-winx64” 三.环境配置 计算 ...
- OpenCV2+入门系列(一):OpenCV2.4.9的安装与测试
这里假设看到这篇文章的人都已经对OpenCV以及机器视觉等最基础的概念有了一定的认识,因此本文不会对OpenCV做任何的介绍,而是直接介绍OpenCV2.4.9的安装与测试.此外本文只是简单的介绍如何 ...
- 决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试
决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试 [TOC] Apache ZooKeeper 单机模式安装 创建hadoop用户&赋予sudo权限, ...
- 简易安装python统计包
PythonCharm简易安装python统计包及 本文介绍使用pythonCharm IDE 来安装Python统计包或一些packages的简单过程,基本无任何技术难度,顺便提一提笔者在安装过程中 ...
随机推荐
- utf8_unicode_ci与utf8_general_ci的区别
From: http://www.chinaz.com/program/2010/0225/107151.shtml 当前,utf8_unicode_ci校对规则仅部分支持Unicode校对规则算法. ...
- 腾讯QQ家族任意支付QB+修改资料csrf
http://jz.qq.com/m_card.shtml POST /cgi-bin/league_change_userinfo HTTP/1.1 Host: jz.qq.com Connecti ...
- UITextField禁用掉编辑之后...
某些UITextField只为了摆数据,还有响应点击,为了避免频繁出现键盘,所以把UITextField的人机交互(userInteractionEnabled)给关闭了 此时,给UITextFiel ...
- Java基础之深入理解Class对象与反射机制
深入理解Class对象 RRIT及Class对象的概念 RRIT(Run-Time Type Identification)运行时类型识别.在<Thinking in Java>一书第十四 ...
- C++ 保存Excel文件(带密码保护)
最近有客户需求报表保存为xls的功能,需要保存的文件设置密码保护,特进行尝试! Workbook.SaveAs method (Excel) 参数详情:https://docs.microsoft.c ...
- python--内置函数---13
原创博文,转载请标明出处--周学伟 http://www.cnblogs.com/zxouxuewei/ Python 内置函数 内置函数 abs() divmod() input() ...
- Eclipse------如何将项目通过maven编译并打包
1.右击项目>>>点击Debug As>>>点击 Maven install进行编译,编译成功后入图 2.右击项目>>>点击Debug As> ...
- Java使用String类格式化当前日期
在输出日期信息时,经常需要输出不同格式的日期格式,本实例中介绍了String字符串类中的日期格式化方法,实例使用不同的方式输出String类的日期格式参数值,组合这些值可以实现特殊格式的日期字符串. ...
- Apache安全配置基线指导
搜索关键词:Apache安全配置基线指导 参考链接: windows服务器下Apache 的降权 https://www.landui.com/help/show-1749.html
- Git 学习笔记--1.Git基础操作
取得项目的Git仓库 有两种方式取得Git项目仓库.第一种是在现存的目录下,通过导入所有文件来创建新的Git仓库.第二种是从已有的Git仓库克隆出一个新的镜像仓库. 在工作目录中初始化新仓库 要对现 ...