mysql 主从复制配置

mysql主从复制用途

  • 实时灾备,用于故障切换(高可用)
  • 读写分离,提供查询服务(读扩展)
  • 数据备份,避免影响业务(高可用)

主从部署必要条件:

  • 从库服务器能连通主库
  • 主库开启binlog日志(设置log-bin参数)
  • 主从server-id不同

主从复制实现原理

在这里插入图片描述
主从复制整体分为以下三个步骤:

  • 主库将数据库的变更操作记录到Binlog日志文件中
  • 从库读取主库中的Binlog日志文件信息写入到从库的Relay Log中继日志中
  • 从库读取中继日志信息在从库中进行Replay,更新从库数据信息

上述过程都是异步操作,俗称异步复制,存在数据延迟现象。
在这里插入图片描述
mysql主从复制存在的问题:

  • 主库宕机后,数据可能丢失
  • 从库只有一个SQL Thread,主库写压力大,复制很可能延时

解决方法:

  • 半同步复制—解决数据丢失的问题
  • 并行复制----解决从库复制延迟的问题

master库配置

  1. 在/etc目录下找到my.cnf文件
    在这里插入图片描述
  2. 编辑my.cnf文件,设置log_bin=mysql-bin开启Logbin功能,设置server.id=1。
    在这里插入图片描述
  3. systemctl restart mysqld重启mysql服务。然后连接到mysql,使用以下三个命令给从库授权。我们再使用 show master status 就能查看到当前所使用得binlog文件是哪一个了。
    grant all privileges on *.* to 'root'@'%' identified by 'root';
    grant replication slave on *.* to 'root'@'%' identified by 'root';
    flush privileges;
    在这里插入图片描述

从库配置

  1. 进入从库中得my.cnf文件中修改相关server-id配置,然后重启systemctl restart mysqld。其次从库需要配置一下权限才能让navicat连接到方便测试grant all privileges on *.* to 'root'@'%' identified by 'root';
    在这里插入图片描述
  2. 使用命令change master命令配置主从关系,同时使用start slave开启主从同步。
change master to master_host='192.168.192.130',master_port=3306,master_user='root',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=869;

在这里插入图片描述

  1. 使用 show slave status \G 查看状态
    在这里插入图片描述
  2. 在master表创建lagou数据库以及一个test表,可以看到主从复制得结果
    在这里插入图片描述
    注意:
    我们主从复制是从binlog文件得指定位置开始进行复制得,如果之前还有很多内容,我们可以使用mysqldump命令将数据库导出来复制到从库再开启主从复制。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值