暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL主从复制读写分离原理解析

猿农圈 2022-09-13
265

读写分离原理

MySQL要做到主从复制,其实依靠的是二进制日志。

举例:假设主服务器叫A,从服务器叫B;主从复制就是B跟着A学,A做什么,B就做什么。那么B怎么同步A的动作呢﹖现在A有一个日志功能,把自己所做的增删改(Insert、Delete、Update)的动作,全都记录在日志中,B只需要拿到这份日志,照着日志上面的动作施加到自己身上就可以了。这样就实现了主从复制。

配置主从

配置主机MySQL Master

1.修改MySQL my.cnf 文件或my.ini

vim etc/my.cnf
[mysqld]
log-bin=mysql-bin #[必须]启用二进制日志
binlog_fORMat=mixed #二进制日志的格式,有三种
server_id=128 #[必须]服务器唯一id,默认是1,一般取ip最后一段
expire-logs-days=10 # [可选]binlog日志保留的天数,清除超过10天的日志 防止日志文件过大,导致磁盘空间不足

2.重启MySQL服务systemctl restart mysqld3.在主服务器上为从服务器分配一个账号,就像一把钥匙,从服务器拿着这个钥匙,才能到主服务器来共享主服务器的日志文件。此命令也可以在Navicat中执行mysql> create user 'slave'@'%' identified by 'Slave123.'; -- 创建用户mysql> grant REPLICATION SLAVE on *.* to slave@'%' with grant option; -- 授权# 如果授权出现异常:Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operationmysql> grant system_user on *.* to 'root'; #则先执行给root,SYSTEM_USER权限然后在执行授权mysql> grant REPLICATION SLAVE on *.* to slave@'%' with grant option;replication slave:分配的权限*.*:可操作的数据库'slave': 用户名'%':可以在那台电脑登录'1234':密码4.查看配置状态mysql> show master status;
配置从机Mysql Slave1.修改MySQL my.cnf或my.inivim /etc/my.cnf[mysqld]log-bin=mysql-bin #[不是必须]启用二进制日志binlog-do-db=test #同步的数据库server_id=131 #服务器唯一id,默认是1,一般取ip最后一段

文章转载自猿农圈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论