mysql论坛_MySQL数据库的主从拷贝

345a1bcbecc12be36009e6283bf42daa.png

下一篇:程序员全套学习视频免费领取
上一篇:删库后,除了跑路还能怎么办

主从拷贝就是要保持两个数据库的状态自动同步,对任何一个数据库的操作都自动应用到另一个数据库,始终保持两个数据库中的数据一致。

mysql主从拷贝的目的

1. 实现数据库负载平衡(读写分离)

2. 数据备份

3. 高可用性(主数据库宕机时切换从数据库)

实现原理

(1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);

(2) slave将master的binary log events拷贝到它的中继日志(relay log);

(3) slave重做中继日志中的事件,将改变反映它自己的数据。

45d46098bc556102c4b46d554a9faae7.png

前期准备

  • 保持主库和从库的数据一致性
  • 先将主数据库的连接都关闭,备份数据,
    并将备份导入从数据库。
  • 设置拷贝方式

mysql拷贝方式主要有三种:基于SQL语句的复制(SBR),基于行的复制(RBR),混合模式复制(MBR)。对应binlog的格式:STATEMENT,ROW,MIXED。我们选用SBR方式。在mysql的配置文件my.cnf中,配置binlog_format = STATEMENT

  • 开通防火墙,保证主库能连接到从库

主库(master)配置

配置文件my.cnf中添加配置:

server-id=1
log-bin=mysql-bin
binlog-do-db=需要拷贝的库

创建拷贝数据用户

grant replication slave on *.* to slave@192.168.183.132 identified by 'slave‘

重启master,登陆后查看主库日志位置并记录

show master status;

0f2a943c473915390f4446851a0361a8.png

从库(slave)配置

配置my.cnf文件:

server-id=2
log-bin=mysql-bin
log-slave-updates     //如果从库要把数据拷贝到下一个

重启slave,设置主从拷贝

stop slave;  //关闭slave拷贝
change master to master_host = '192.168.183.131' , master_user='slave', master_password='slave', master_log_file='mysql-bin.000004',master_log_pos=120;  //在从库上设置主库信息
start slave; // 启动slave拷贝
show slave status G; //查看拷贝状态

dfa82f3762d823e597028cd90729ffd7.png

验证主从拷贝是否生效

在主库master拷贝的数据库中新建一张表

create table slave1 (a varchar(20),b decimal(8,4));

在从库中查看刚才在主库中创建的表

show create table slave_1;

98c2994fda4a4ba3c4516f5f5aac363a.png

主库创建的表已经同步给从库了,说明主从拷贝配置完成。
精彩推荐:

1、这200G的学习资料15888元买的,免费分享给大家(实用)

2、程序员们平时都喜欢逛什么论坛呢?

3、如何快速打好Java基础?

2c087d29db61321b015cf5558d53dc2a.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值