Mysql主从复制(读写分离)的使用、原理、常见问题分析及解决

使用

  1. 主库只执行写操作
  2. 从库只执行读操作
  3. 可以配置多台从库,同步一台主库的数据,使用lvs负载均衡,负载多台从库

原理

Mysql主从复制(读写分离)的使用、原理、常见问题分析及解决
mysql主从复制是一个异步的过程,整个过程需要开启3个线程,主库需要开启bin-log日志

1. slave开启i/o线程来请求master,请求bin-log中指定position之后的内容返回给slave
2. master收到请求后,响应slave的请求,将内容返回给slave
3. slave开启线程将接受到的内容存入到自己的relay-log中继日志中
4. slave端的SQL线程实时监测relay-log中继日志,有更新后将日志中的内容转化为SQL语句在自身的库中执行

常见问题分析及解决

  1. 主从搭建完成,两个线程没有显示yes
    原因及解决方案:
    (1)登录主库的slave用户无法登陆,可以在主库尝试手动账号密码登录主库
    (2)系统的防火墙未关闭:systemctl stop firewalld
    (3)系统的selinux未关闭:setenforce 0
  2. 主从架构搭建成功,突然不同步了
    原因及解决方案:
    主库:
    (1)主库连接数太多:show ariables like ‘%max%’;
    (2)主库慢查询太多:开启慢查询日志,定位到慢查询语句
    从库:
    (1)主库更新特殊字符,从库更新特殊字符报错,卡住:停掉slave,跳过这一步
    (2)最后实在无法解决,reset slave,重新搭建主从复制