MySQL的主从复制实战

简介

主从复制是指从一个MySQL服务器(Master-主服务器)数据复制到一个或者多个服务器(Slave-从服务器)上。

单机Mysql的问题

  • 服务器压力较大。
  • 单机故障,导致项目不可用。
  • MySQL对多核CPU利用率较低。

主从复制

MySQL主从复制是一个异步的数据复制过程,MySQL支持单向、双向、链表多种不同业务场景的复制,主要是基于MySQL数据库自带的二进制日志(BINLOG)来进行解析,更新到从库当中,从而使主从服务器达到一致。

二进制日志(BINLOG):主要记录了所有的 DDL 和 DML 语句,MySQL的二进制日志是事务安全型的。BINLOG的主要目的是用来进行 复制和恢复。不过默认MySQL是未开启BINLOG日志的。

如何启用BINLOG

登录mysql服务

mysql -uroot -p

查看是否启用binlog日志

mysql> show variables like 'log_bin';

配置 /etc/my.cnf 中的 log-bin 选项 如下:

log-bin 设置启用二进制日志

server-id 设置服务器Id 主从不能一致

#启用二进制日志
log-bin=my-binlog-name
#设置服务器ID
server-id=110

重启MySQL服务

mysql> systemctl restart mysqld

配置主从复制

主库配置

步骤1.先配置上述启用BINLOG和服务器ID

步骤2.创建一个用户并授予复制 (REPLICATION SLAVE )的权限

GRANT REPLICATION SLAVE ON *.* to 'duck'@'%' identified by 'duck@sync';

步骤3.查看master的状态

show master status

主要查看生成的文件名File 和 随机写入点 Position 配置从库时会用到这两个参数

从库配置

步骤1.配置 /etc/my.cnf 中的 服务器ID server-id   *从库不需要开启BINLOG

#设置服务器ID 保证和主库不一致即可
server-id=111 

步骤2.重启MySQL服务

mysql> systemctl restart mysqld

步骤3. 从库连接到主库

mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.110',
MASTER_USER='duck',MASTER_PASSWORD='duck@sync',
MASTER_LOG_FILE='binlog.000031',MASTER_LOG_POS=429327; 

 参数解析:

  •         MASTER_HOST: 主库的IP地址
  •         MASTER_USER : 主库主从复制的用户名(主库配置步骤2中配置的用户名)
  •         MASTER_PASSWORD : 访问主库进行主从复制的密码(主库配置步骤2中配置的密码)
  •         MASTER_LOG_FILE : 开始同步文件(主从配置步骤3中的File)
  •         MASTER_LOG_POS : 同步偏移量(主从配置步骤3中的Position)

步骤4. 启动从库

mysql> start slave;

步骤5.查看从库的状态

mysql> show slave status

主要查看 Slave_IO_Runing Slave_SQL_Running两个参数为 Yes 则说明基本已经配置完成,自行创建数据库测试即可。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黄鸭技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值