您现在的位置是:亿华云 > 数据库

SpringBoot整合MyCat实现读写分离

亿华云2025-10-03 02:25:54【数据库】7人已围观

简介MyCat一个彻底开源的,面向企业应用开发的大数据库集群。基于阿里开源的Cobar产品而研发。能满足数据库数据大量存储;提高了查询性能。文章介绍如何实现MyCat连接MySQL实现主从分离,并集成Sp

MyCat一个彻底开源的整合,面向企业应用开发的现读写分大数据库集群。基于阿里开源的整合Cobar产品而研发。能满足数据库数据大量存储;提高了查询性能。现读写分文章介绍如何实现MyCat连接MySQL实现主从分离,整合并集成SpringBoot实现读写分离。现读写分

MySQL配置主从关系

SpringBoot整合MyCat实现读写分离

说明

SpringBoot整合MyCat实现读写分离

 192.168.0.105 Linux 数据库作为主master数据库  127.0.0.1 Window 作为从slave数据库

master主数据库配置

SpringBoot整合MyCat实现读写分离

binlog是整合Mysql sever层维护的一种二进制日志,主要是现读写分用来记录对Mysql数据更新或潜在发生更新的服务器租用SQL语句,记录了所有的整合写语句,并以事务的现读写分形式保存在磁盘中,还包含语句所执行的整合消耗的时间,MySQL的现读写分二进制日志是事务安全型的。

master上开启log_bin

$ vim /etc/my.cnf  log-bin           = mysql-bin  #[必须]启用二进制日志  server-id         = 4          #[必须]服务器唯一ID,云南idc服务商整合默认是现读写分1,最好取ip的整合后3位  expire-logs-days  = 7           #只保留7天的二进制日志,以防磁盘被日志占满  binlog-ignore-db  = mysql       #不备份的数据库  binlog-ignore-db  = information_schema  binlog-ignore-db  = performation_schema  binlog-ignore-db  = sys  binlog-do-db=itools_simple #需要做复制的数据库名,如果有多个,复制binlog-do-db即可

登录mysql,测试log_bin是否成功开启 

$ mysql -u root -p    Root@123  // log_bin ON表示开启成功,OFF表示开启失败  mysql> show variables like %log_bin%;  +---------------------------------+--------------------------------+  | Variable_name                   | Value                          |  +---------------------------------+--------------------------------+  | log_bin                         | ON                             |  | log_bin_basename                | /var/lib/mysql/mysql-bin       |  | log_bin_index                   | /var/lib/mysql/mysql-bin.index |  | log_bin_trust_function_creators | OFF                            |  | log_bin_use_v1_row_events       | OFF                            |  | sql_log_bin                     | ON                             |  +---------------------------------+--------------------------------+  6 rows in set (0.01 sec)

新增备份账户 

mysql> grant replication slave on *.* to backup@% identified by Root@123;  mysql> use mysql  mysql> select user,authentication_string,host from user; 

重启mysql 

$ systemctl restart mysqld 

登录mysql,亿华云计算并设置只读 

$ mysql -u root -p    Root@123  mysql> flush tables with read lock;  mysql> show master status \G  

很赞哦!(74851)