数据库主从复制

主从同步后的操作原则:

主数据库一般只负责做增删改操作,极少负责査询.从想据库只负责做査询,不负责增删改操作,此时主数据库中数据的变动会通过某种方式,自动同步到所有的从数据库中,最终保持数据一致

  1. Master中开启一个线程,把数据变动记录到一个二逬制的日志文件(binary.log中
  2. Slave中开启一>M0线程专门用于读取Master中二进制日志内容,并且把数据写入自己的回放日志文件(relay.log)中
  3. Slave中SQL线程去读取回放日志(relay log)的内容,把Master中执行的DML进行回放,完成主从同步

注意:主从同步是有一定延迟的,所以无法保证从数据库中马上能读取到主数据库同步的信息,因此只要业务方法中涉及到写的操作,那么该操作必须在主数据库上执行

实现步骤

准备工作:先让Master和Slave都拥有相同的数据库,并且数据库中的表数据一致
1 在Master的配置文件my.ini中[mysqld]部分做以下配置,开启binary-log
没有my.ini 文件参考 https://www.jb51.net/article/172172.htm

#配置当前服务器的id
server-id=1
#配置二逬制曰志文件名

log-bin=master-bin
#配置记录哪个数据库的曰志,可以多次配置
binlog-do-db=jerry

2 然后重启MySQL服务器后,再次登录逬去看使用SQL命令查看信息,显示以下内容及表示第一步成功

--查看主服务器状态
show master status;
--注意:bin-log的文件名会随着主服务器的重启发送变化

在这里插入图片描述
2.在Maste傲据库中新建一个新用户专门用于做主从同步

--可以使用图形化界面来操作
#创建用户slave用于主从同步,并授予jerry数据库操作权限
GRANT ALL ON jerry.* TO 'slave'@'%' IDENTIFIED BY '123';
#授予主从同步权限,该权限是一全局的权限
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
#刷新权限
FLUSH PRIVILEGES;

3.在Slave的配置文件中 /etc/my.cnf [mysqld]部分做以下配置,然后重启服务器

#配罝从服务器id,必须唯一不能重复
server-id=2
#回放哪个数据库的日志,可以多次配置
replicate-do-db=jerry

linux中重启mysql

service mysqld restart

4.登录从数据库服务器Slave中执行SQL

##从数据库设置主服务器的信息
CHANGE MASTER TO
MASTER_HOST='主数据库ip',
MASTER_PORT=3306,
MASTER_USER='slave',
MASTER_PASSWORD='123',
MASTER_LOG_FILE='master-bin.000001',
MASTER_LOG_POS=810

//最后两项可以在[主数据库]执行以下SQL查看
SHOW MASTER STATUS;

//如果执行以上代码出现一下错误 则需要先 执行 STOP SLAVE 后重试
[Err] 3021 - This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL '' first.

//执行成功后 开启 主从同步
start SLAVE;

// 查看主从服务器状态  Slave_IO_Running 和	Slave_SQL_Running 都为yes表示成功
show SLAVE STATUS

在这里插入图片描述
此时主从服务已经配置完成 验证 在主数据库的表中插入数据,从数据库表中刷新得到数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值