Mysql读写分离

读写分离(基于Mycat实现)

Mycat介绍

  1. Mycat是什么?
    · 一个彻底开源的,面向企业应用开发的大数据库集群
    · 支持事务、ACID、可以替代MySQL的加强版数据库
    · 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
    · 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
    · 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
    · 一个新颖的数据库中间件产品

基于Mycat实现读写分离
Mysql读写分离_第1张图片
注释:
①由Mycat作为逻辑主库来接受web应用发起的SQL语句执行请求,然后后端将sql语句分类,将DML语句执行分发给后端的MySQL主库执行,然后主库通过MySQL主从复制,将数据同步给从库。而Mycat会将接受到的DQL语句的执行分发给MySQL从库执行,由于实际业务场景中读操作远远多于写操作,所以通常来讲是一主多从的架构。
② 对于web应用来讲,只需将Mycat逻辑主机作为数据库即可,其他无需做任何修改。

实现步骤:

  1. 安装jdk并配置环境变量(略).[保证当前mycat的所在机器有jdk环境]
  2. 下载mycat:http://www.mycat.io/
  3. 解压mycat。
    tar zxvfMycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
  4. 设置mycat的环境变量。
    Mysql读写分离_第2张图片
  5. 使配置立即生效。
    source /etc/profile
  6. 编辑mycat的schema.xml配置文件,配置mycatMysql读写分离_第3张图片
  7. 接下来在server.xml文件中配置用户权限,系统变量
    Mysql读写分离_第4张图片
  8. 修改防火墙,放行mycat的端口访问。
    service iptables stop
  9. 启动mycat。【mycat默认连接端口号为8066】
    mycat start --后台启动【建议实际生产环境使用】
    mycat console --前台启动。【建议测试环境下使用】

验证Mycat读写分离

  1. 使用Navicat连接Mycat逻辑主库
    Mysql读写分离_第5张图片
  2. 查看Mycat的运行日志
    ① 向mycat发送insert语句,执行查看Master库和多个slave库中,数据都存在。
    ② 向mycat发送select * from t_person,发送多次,查看日志
    tail -f mycat.log
    Mysql读写分离_第6张图片
    错误排查
  1. 启动mycat出错。
    默认mycat使用至少需要4G内存,如果是使用虚拟机启动,内存分配很可能不够,此时要修改.Mysql读写分离_第7张图片

你可能感兴趣的:(数据库)