Linux Mysql之中间件Mycat 读写分离

发布时间:2022-08-18 18:17

目录

Linux Mysql之中间件Mycat 读写分离

一、Mycat

Mycat 适用场景

Mycat 长期路线图

二、Mycat 概括

三、Mycat 实现 Mysql 读写分离


Linux Mysql之中间件Mycat 读写分离

一、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 实现 Mysql 读写分离

环境准备

master服务器	    192.168.118.140
slave1服务器	    192.168.118.150
mycat服务器	    192.168.118.160
客户机	        192.168.118.170

初始化环境

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

 主从配置

主 mysql 服务器配置(192.168.118.140)

(1)#修改配置文件
vim /etc/my.cnf
server-id = 1
log-bin=master-bin
binlog_format=MIXED
log-slave-updates=true
 
(2)#重启服务
systemctl restart mysqld
 
(3)#进入数据库授权,查看二进制文件及节点号
mysql -uroot -p000000
grant replication slave on *.* to 'myslave'@'192.168.118.%' identified by '123456';
flush privileges;
show master status;
 
(4)#在数据库中传入一个数据库文件hellodb
source ~/test.sql

修改配置文件

Linux Mysql之中间件Mycat 读写分离_第1张图片

 重启服务

 进入数据库授权,查看二进制文件及节点号

Linux Mysql之中间件Mycat 读写分离_第2张图片

 在数据库中传入一个数据库文件hellodb

Linux Mysql之中间件Mycat 读写分离_第3张图片

Linux Mysql之中间件Mycat 读写分离_第4张图片

 从 Mysql 服务器配置(192.168.118.150)

(1)#修改配置文件
vim /etc/my.cnf
server-id = 2
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index
 
(2)#重启服务
systemctl restart mysqld
 
(3)#进入数据库授权,查看二进制文件及节点号
mysql -uroot -p000000
change master to master_host='192.168.118.140',master_user='myslave',master_password='123456',master_log_file='master-bin.000002',master_log_pos=902;
 
start slave;
show slave status\G;
 
##一定要出现
#Slave_IO_Running: Yes
#Slave_SQL_Running: Yes

修改配置文件

Linux Mysql之中间件Mycat 读写分离_第5张图片

 重启服务

 进入数据库授权,查看二进制文件及节点号

Linux Mysql之中间件Mycat 读写分离_第6张图片

 安装 Mycat(192.168.118.160)

(1)#主机上安装java
yum install java -y
 
(2)#创建/apps文件夹
mkdir /apps
 
(3)#网络下载mycat包并解压至/apps下
wget http://dl.mycat.org.cn/1.6.7.6/20210303094759/Mycat-server-1.6.7.6-release-20210303094759-linux.tar.gz
tar zxvf Mycat-server-1.6.7.6-release-20210303094759-linux.tar.gz -C /apps/
 
(4)#设置变量环境
echo 'PATH=/apps/mycat/bin:$PATH' > /etc/profile.d/mycat.sh
source /etc/profile.d/mycat.sh
 
(5)#启动mycat
mycat start
 
(6)#查看日志文件,最后可以看到启动成功
tail -f /apps/mycat/logs/wrapper.log 

安装 java

Linux Mysql之中间件Mycat 读写分离_第7张图片

 创建 /apps 文件夹

 网络下载 mycat 包并解压至 /apps 下

Linux Mysql之中间件Mycat 读写分离_第8张图片

Linux Mysql之中间件Mycat 读写分离_第9张图片

 设置变量环境

 启动 mycat

 查看日志文件,最后可以看到启动成功

Linux Mysql之中间件Mycat 读写分离_第10张图片

第一次在客户机测试(192.168.118.170)

#这里密码初始为123456   需要加端口
mysql -u root -p123456 -h 192.168.118.160 -P8066

Linux Mysql之中间件Mycat 读写分离_第11张图片

 修改 mycat 配置文件

修改 /apps/mycat/conf/server.xml

vim /apps/mycat/conf/server.xml
 
#去掉44行注释,50行末注释,51行末注释
 
#第45行,修改端口号
3306
 
#密码用户 在110 和111 可以修改这边不修改了

去掉44行注释,50行末注释,51行末注释 

Linux Mysql之中间件Mycat 读写分离_第12张图片

Linux Mysql之中间件Mycat 读写分离_第13张图片

 第45行,修改端口号

Linux Mysql之中间件Mycat 读写分离_第14张图片

 密码用户 在110 和111 可以修改这边不修改了

Linux Mysql之中间件Mycat 读写分离_第15张图片

 主服务器上建立一个用户

mysql -u root -p000000
GRANT ALL ON *.* TO 'root'@'192.168.118.%' IDENTIFIED BY '123456';
 
#查看创建成功
use mysql;
select user,host from user;

Linux Mysql之中间件Mycat 读写分离_第16张图片

 修改 /apps/mycat/conf/schema.xml

(1)#删除所有内容,重新写入以下
vim  /apps/mycat/conf/schema.xml
 



        
        
        
                select user()
                
                 
 
                
        

 
(2)#如果本地mycat服务器上安装了mysql需要关掉,否则端口会冲突
systemctl stop mysqld.service
 
(3)#重启mycat,并查看3306端口
 mycat restart    
 ss -antp|grep 3306

Linux Mysql之中间件Mycat 读写分离_第17张图片

 如果本地mycat服务器上安装了mysql需要关掉,否则端口会冲突

 重启mycat,并查看3306端口

客户端测试

查看读来自那台服务器

#这时可以不加端口直接进入数据库了
mysql -u root -p123456 -h 192.168.118.160
 
#看是否能查到表
mysql -u root -p123456 -h 192.168.118.160
show databases;
use TESTDB;
show tables;
 
#查看当前的查询来自哪台服务器
select @@server_id;
 

这时可以不加端口直接进入数据库了

Linux Mysql之中间件Mycat 读写分离_第18张图片

Linux Mysql之中间件Mycat 读写分离_第19张图片

 测试读写分离

#在主、从服务器打开日志
set global general_log=1; 
 
#在客户机查看是否开启成功
show variables like 'general%';
 
#在主从服务器实时查看日志
tail -f /usr/local/mysql/data/localhost.log
 
#在客户机上汪表里插入数据,并查看主从服务器实时日志
insert into teachers values(5,'Xiao Ming',46,'F');
 
#在客户机查看表信息,并查看主从服务器实时日志
select * from teachers;

在主、从服务器打开日志

Linux Mysql之中间件Mycat 读写分离_第20张图片

Linux Mysql之中间件Mycat 读写分离_第21张图片

 在客户机查看是否开启成功

Linux Mysql之中间件Mycat 读写分离_第22张图片

 在主从服务器实时查看日志

Linux Mysql之中间件Mycat 读写分离_第23张图片

Linux Mysql之中间件Mycat 读写分离_第24张图片

 在客户机上表里插入数据,并查看主从服务器实时日志

Linux Mysql之中间件Mycat 读写分离_第25张图片

Linux Mysql之中间件Mycat 读写分离_第26张图片

Linux Mysql之中间件Mycat 读写分离_第27张图片

在客户机查看表信息,并查看主从服务器实时日志

Linux Mysql之中间件Mycat 读写分离_第28张图片

Linux Mysql之中间件Mycat 读写分离_第29张图片

 

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号