ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SpringBoot+MyBatis+MySQL读写分离

2021-09-13 02:31:13  阅读:180  来源: 互联网

标签:slave log MySQL 192.168 master mysql MyBatis sec SpringBoot


一、主从配置

1.环境

操作系统:CentOS-7

MySQL:mysql-5.7

192.168.15.129  master

192.168.15.130  slave

2.主库配置

  • vi /etc/my.cnf在[mysqld]下增加如下两行设置:

    [mysqld]
    log-bin=mysql-bin 
    server-id=1    
    
  • 创建数据同步账户

    CREATE USER 'repl'@'192.168.15.%' IDENTIFIED BY '666666';
    
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.15.%';
    
    FLUSH PRIVILEGES;
    
  • 查看matser状态: show master status;

3.从库配置

  • vi /etc/my.cnf

    [mysqld]
    log-bin=mysql-bin 
    server-id=2
    log-error=/var/log/mysqld.log   # 异常日志存放位置
    
  • 执行同步命令

    change master to master_host='192.168.15.129', master_user='repl', master_password='666666', master_log_file='mysql-bin.000002', master_log_pos=154;
    
    # 设置从库只读
    set global super_read_only=1;
    
    
    # 锁表
    flush tables with read lock;   # 锁表(所有角色都只读,但是会影响主从同步)
    
    # 解锁
    unlock tables;
    
  • 查看slave状态: show slave status\G;

4.异常解决

  • slave 在主库找不到binlog文件
[ERROR] Slave I/O for channel '': Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from position > file size', Error_code: 1236

解决方法:

  • master端
mysql> flush logs;
Query OK, 0 rows affected (0.02 sec)

mysql> show master status;
+---------------------+----------+--------------+------------------+-------------------+
| File                | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------------+----------+--------------+------------------+-------------------+
| dbmaster-bin.000005 |      120 |              |                  |                   |
+---------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

记住fileposition这两个选项

  • slave端
mysql> stop slave;
Query OK, 0 rows affected (0.01 sec)

mysql> change master to master_log_file ='dbmaster-bin.000005',master_log_pos=120;
Query OK, 0 rows affected (0.01 sec)

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

搞定收工!

二、读写分离

gitee源码地址:https://gitee.com/kk-dad/msrepl

标签:slave,log,MySQL,192.168,master,mysql,MyBatis,sec,SpringBoot
来源: https://www.cnblogs.com/qqkkOvO/p/15260810.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有