MyCAT 可以视为“MySQL”集群的企业级数据库,用来替代昂贵的Oracle集群,其背后是阿里曾经开源的知名产品Cobar。MyCAT的目标是:低成本的将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。
一、部署步骤详解 (先安装mysql)
(1) 用命令行工具或图形化客户端,连接MYSQL,创建DEMO所用三个分片数据库;
CREATE database db1;
CREATE database db2;
CREATE database db3;
(2) 修改my.inf新增以下语句,my.inf 一般会放在/etc/my.cnf 或 /etc/mysql/my.cnf,设置为Mysql大小写不敏感,否则可能会发生表找不到的问题。
lower_case_table_names = 1
(3) 解压Mycat-server-1.3.0.2-20150105144205-linux.tar.gz 到/usr/local/mycat
(4) 解压jdk-7u65-linux-i586.gz,配置环境变量
(5) 创建mycat 用户,改变目录权限为mycat
useradd mycat
chown -R mycat.mycat /usr/local/mycat
(7) 修改用户密码
passwd mycat
输入:
(8) 修改/usr/local/conf/schema.xml,URL、用户名、密码修改,其余不变
<writeHost host="hostM1" url="10.1.176.104:3306" user="root"
password="www.com.workssys">
二、运行步骤详解
(1) 进入 /usr/local/mycat/bin (默认数据端口为8066,管理端口为9066) 执行./mycat start
(2) 进入logs目录,查看日志,如果wrapper.log 报错 java.net.BindException: Address already in use 杀掉正在执行的相关java进程
ps -ef|grep java
kill -9 xxx
三、使用步骤详解
(1) 进入mysql bin目录/usr/local/mysql/bin/
(2) 登录mysql 执行以下命令 注意:需要在安装mysql服务端执行mysql命令,使用navicat等工具分片可能出现问题
mysql -utest -ptest -h10.1.176.104 -P8066 -DTESTDB
(mycat的用户账号和授权信息是在conf/server.xml文件中配置)
(3) 表创建测试:
mysql> create table employee (id int not null primary key,name varchar(100),sharding_id int not null);
Query OK, 0 rows affected (0.30 sec)
mysql> explain create table employee (id int not null primary key,name varchar(100),sharding_id int not null);
+-----------+------------------------------------------------------------------------------------------------+
| DATA_NODE | SQL |
+-----------+------------------------------------------------------------------------------------------------+
| dn1 | create table employee (id int not null primary key,name varchar(100),sharding_id int not null) |
| dn2 | create table employee (id int not null primary key,name varchar(100),sharding_id int not null) |
+-----------+------------------------------------------------------------------------------------------------+
2 rows in set (0.04 sec)
(4) 客户端软件使用:navicat
创建mycat新连接:ip:10.1.176.104,用户名:test,密码:test,端口:8066
可看到TESTDB数据库下已创建表:employee
打开db1,db2 数据库也可看到已创建表employee
(5) 插入数据测试
mysql> insert into employee(id,name,sharding_id) values(1,'leader us',10000);
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 6
Current database: TESTDB
Query OK, 1 row affected (0.03 sec)
mysql> explain insert into employee(id,name,sharding_id) values(1,'leader us',10000);
+-----------+-----------------------------------------------------------------------+
| DATA_NODE | SQL |
+-----------+-----------------------------------------------------------------------+
| dn1 | insert into employee(id,name,sharding_id) values(1,'leader us',10000) |
+-----------+-----------------------------------------------------------------------+
1 row in set (0.00 sec)
(6) 根据规则auto-sharding-long(主键范围)进行分片测试
mysql> explain create table company(id int not null primary key,name varchar(100));
+-----------+---------------------------------------------------------------------+
| DATA_NODE | SQL |
+-----------+---------------------------------------------------------------------+
| dn1 | create table company(id int not null primary key,name varchar(100)) |
| dn2 | create table company(id int not null primary key,name varchar(100)) |
| dn3 | create table company(id int not null primary key,name varchar(100)) |
+-----------+---------------------------------------------------------------------+
3 rows in set (0.01 sec)
(7) 三个分片上都插入了3条数据
mysql> explain insert into company(id,name) values(1,'hp');
+-----------+---------------------------------------------+
| DATA_NODE | SQL |
+-----------+---------------------------------------------+
| dn1 | insert into company(id,name) values(1,'hp') |
| dn2 | insert into company(id,name) values(1,'hp') |
| dn3 | insert into company(id,name) values(1,'hp') |
+-----------+---------------------------------------------+
3 rows in set (0.00 sec)
(8) 确认是分片存储
mysql> select * from employee;
+----+-----------+-------------+
| id | name | sharding_id |
+----+-----------+-------------+
| 2 | me | 10010 |
| 4 | mydog | 10010 |
| 1 | leader us | 10000 |
| 3 | mycat | 10000 |
+----+-----------+-------------+
4 rows in set (0.01 sec)
mysql> explain select * from employee;
+-----------+----------------------------------+
| DATA_NODE | SQL |
+-----------+----------------------------------+
| dn1 | SELECT * FROM employee LIMIT 100 |
| dn2 | SELECT * FROM employee LIMIT 100 |
+-----------+----------------------------------+
2 rows in set (0.00 sec)
相关推荐
在Mycat1.5中,其对SQL支持进行了增强,不仅支持标准的SQL92,还兼容了大部分的MySQL语法,使得开发人员在使用过程中更加得心应手。同时,1.5版本在事务处理方面也做了优化,支持分布式事务,确保了数据的一致性。 ...
mycat1.5中文教程,大家也可以去官网免费下载。 https://github.com/MyCATApache/Mycat-Server
- **安装与部署**:在64位Linux上安装MyCat,需要遵循特定的Linux命令行操作,如使用wget下载、tar解压、配置环境变量等。 3. **配置与启动**: - **配置文件**:MyCat的核心配置在`server.xml`和`schema.xml`...
mycat1.5版本,学习交流用
4、修复重要缺陷:在 LVS等前端负载均衡器模式下,与 Mycat 频繁建立连 接和关闭,长期运行后,可能导致连接 Id 的整数越界,产生无法连接的 问题 ; 5、心跳线程在遇到连接需要同步的情况下,发生连接同步错误,...
MyCat的目标就是:低成本地将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。2014年MyCat首次在上海的《中华架构师》大会上对外宣讲引发围观,更多的人参与进来,...
《Mycat-Server1.5:分布式数据库中间件详解》 Mycat-Server1.5是一款基于Java开发的开源分布式数据库中间件,它在IT行业中被广泛应用于解决大数据量、高并发的数据库访问问题。这个版本的Mycat Server优化了性能,...
安装和部署Mycat-server-1.5.1 Linux时,你需要先将`.tar.gz`文件解压到Linux服务器的一个合适目录,然后根据`conf`目录下的配置文件进行个性化设置,如定义数据源、分片策略等。配置完成后,可以通过`bin`目录下的...
《Mycat 1.6权威指南》与《Mycat 1.5权威指南》是两本关于Mycat数据库中间件的重要参考资料,分别提供了详细的1.6和1.5版本的技术信息和实践指导。Mycat作为一款开源的分布式数据库系统,它解决了大数据量下的高并发...
### Mycat 1.6 安装步骤详解 #### 一、Mycat简介与应用场景 Mycat作为一款开源的数据库中间件,主要用于解决大型系统中的数据分库分表问题,通过它能够将大量的数据分散到多个物理数据库中,以此来提升系统的并发...
MyCAT集群安装配置 MyCAT是一种开源的数据库中间件,提供了高性能、可扩展的数据访问层,可以将多个数据库服务器集成为一个逻辑库,提供统一的数据访问接口。下面将详细介绍MyCAT集群安装配置的相关知识点。 MyCAT...
mycat 2.0安装及使用
centos8 mycat 2.0安装及使用
安装 Mycat 需要下载 Mycat 服务器压缩包 Mycat-server-1.5-GA-20160127143033-linux.tar.gz,然后使用 tar 命令解压缩该文件。解压缩后,创建 Mycat 用户和用户组,修改文件所有者和权限。 在安装完成后,我们需要...
1. 使用`tar -zxvf Mycat-server-1.5-RELEASE-20160301083012-linux.tar.gz`命令解压压缩包,得到Mycat的服务器端文件。 2. 将解压后的目录移动到合适的位置,例如 `/usr/local/mycat`。 3. 修改配置文件`conf/mycat...
在Linux环境下安装Mycat是一项基础且重要的任务,尤其对于那些初涉数据库分库分表技术的开发者来说。Mycat是一款开源的分布式数据库中间件,它能够将一个大型数据库透明地切分为多个小数据库,从而实现水平扩展,...
2. **分区路由**:根据业务规则,Mycat 可以将数据路由到不同的分区,使得大规模数据的管理变得简单。 3. **读写分离**:支持主从复制,自动将读操作分配到从库,写操作则处理在主库,提高了数据库系统的读写性能。...
### Mycat分表功能简易使用手册知识点 #### 1. Mycat核心配置 Mycat是一个开源的数据库中间件,它是基于Java语言开发的数据库集群系统,核心功能之一就是实现分表操作。在Mycat中,核心配置是通过XML文件来实现的,...