Mycat安装及配置文件说明

本文介绍了Mycat的应用场景,如读写分离、分库分表、多租户应用等,并详细阐述了Mycat的部署过程,包括安装目录结构、配置文件解析、日志管理和读写分离的实现步骤。通过对server.xml和schema.xml的配置,实现了Mycat的数据库集群功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Mycat应用场景

  • Mycat适用的场景很丰富,以下是几个典型的应用场景
    • 单纯的读写分离,此时配置最为简单,支持读写分离,主从切换
    • 分表分库,对于超过1000万的表进行分片,最大支持1000亿的单表分片
    • 多租户应用,每个应用一个库,但应用程序只连接Mycat,从而不改造程序本身,实现多租户化报表系统,借助于Mycat的分表能力,处理大规模报表的统计
    • 替代Hbase,分析大数据,作为海量数据实时查询的一种简单有效方案,比如100亿条频繁查询的记录需要在3秒内查询出来结果,除了基于主键的查询,还可能存在范围查询或其他属性查询,此时Mycat可能是最简单有效的选择
  • Mycat长期路线图
    • 强化分布式数据库中间件的方面的功能,使之具备丰富的插件、强大的数据库智能优化功能、全面的系统监控能力、以及方便的数据运维工具,实现在线数据扩容、迁移等高级功能进一步挺进大数据计算领域,深度结合Spark Stream和Storm等分布式实时流引擎,能够完成快速的巨表关联、排序、分组聚合等 OLAP方向的能力,并集成一些热门常用的实时分析算法,让工程师以及DBA们更容易用Mycat实现一些高级数据分析处理功能不断强化Mycat开源社区的技术水平,吸引更多的IT技术专家,使得Mycat社区成为中国的Apache,并将Mycat推到Apache基金会,成为国内顶尖开源项目,最终能够让一部分志愿者成为专职的Mycat开发者,荣耀跟实力一起提升

二、mycat 可以简单概括为

  • 一个彻底开源的,面向企业应用开发的大数据库集群

  • 支持事务、ACID、可以替代MySQL的加强版数据库

  • 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群

  • 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server

  • 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品

  • 一个新颖的数据库中间件产品

三、mycat部署

3.1、mycat安装目录结构说明

  • bin :mycat命令,启动、重启、停止等运行目录
  • catlet: catlet为Mycat的一个扩展功能
  • conf :mycat 配置信息,重点关注
  • lib:mycat引用的jar包,Mycat是java开发的
  • logs日志文件,包括Mycat启动的日志和运行的日志
  • version.txt :mycat版本说明

3.2Mycat的常用配置文件

Mycat的配置文件都在conf目录里面,这里介绍几个常用的文件:

  • server.xml :Mycat软件本身相关的配置文件,设置账号、参数等
  • schema.xml:Mycat对应的物理数据库和数据库表的配置,读写分离、高可用、分布式策略定制、节点控制
  • rule.xml:Mycat分片(分库分表)规则配置文件,记录分片规则列表、使用方法等

3.3 Mycat日志

Mycat的日志文件都在logs目录里面

  • wrapper.log :mycat启动日志
  • mycat.log :mycat详细工作日志

3.4 mycat 实现读写分离

1.环境准备

mycat服务器上不能装mysql

master服务器 192.168.59.113
slave1服务器 192.168.59.112
mycat服务器 192.168.59.114
客户机 192.168.59.118

2.初始化环境

#每台服务器上都初始化,关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

3.部署主从复制

###################### 主mysql服务器配置(192.168.59.113)########################
(1)修改配置文件
[root@localhost ~]#vim /etc/my.cnf

#服务器id不能和从服务器一样
server-id = 1
#开启二进制日志
log-bin=master-bin
#二进制日志格式
binlog_format=MIXED
#开启从服务器同步
log-slave-updates=true


server-id = 1
log-bin=master-bin
binlog_format=MIXED
log-slave-updates=true


(2)重启服务
[root@localhost ~]#systemctl restart mysqld

(3)进入数据库授权,查看二进制文件及节点号
[root@localhost ~]#mysql -uroot -p123123

#建立一个myslave用户,并且允许192.168.59.%这个网段的地址来登录,密码是123456,一会儿要在slave上使用这个账号
grant replication slave on *.* to 'myslave'@'192.168.59.%' identified by '123456';
#刷新一下
flush privileges;
#查看主服务器的bin-log日志文件名称和position点
show master status;

grant replication slave on *.* to 'myslave'@'192.168.59.%' identified by '123456';
flush privileges;
show master status;


############################# 从mysql服务器配置(192.168.59.112)################
(1)#修改配置文件
[root@localhost ~]#vim /etc/my.cnf

#修改,服务器id不能和主服务器一样
server-id = 2
#添加,开启中继日志,从主服务器上同步日志文件记录到本地
relay-log=relay-log-bin
#添加,定义中继日志文件的位置和名称,一般和relay-log在同一目录
relay-log-index=slave-relay-bin.index

server-id = 2
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index

(2)重启服务
[root@localhost ~]#systemctl restart mysqld

(3)进入数据库,设置连接主库信息,并开启slave服务
[root@localhost ~]#mysql -uroot -p123123

#不知道连接主库信息格式可以用help change master to 查看,下面的master_log_file是在配置Master的时候的File字段, master_log_pos是在配置Master的Position 字段。一定要一一对应
change master to master_host='192.168.59.113',master_user='myslave',master_password='123456',master_log_file='master-bin.000001',master_log_pos=603;
#开启slave
start slave;
#查看从库状态信息,Slave_IO_Running和Slave_SQL_Running状态必须是yes
show slave status \G;
#Slave_IO_Running: Yes
#Slave_SQL_Running: Yes

change master to master_host='192.168.59.113',master_user='myslave',master_password='123456',master_log_file='master-bin.000001',master_log_pos=603;
start slave;
show slave status \G;


####################### 在master服务器上上传库文件,并在从服务器上验证主从同步 ############

#在主服务器上下载hellodb库文件,source后加绝对路径
[root@localhost ~]#mysql -uroot -p123123
#下载hellodb库文件
source /bak/hellodb.sql
show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| hellodb            |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

#在从库中查看库文件hellodb是否已经同步
show databases;
+--------------------+
| Database           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值