[学习猿地出品]
一、为什么要做主从复制
1. 在业务复制的系统中,有这么一个情景,有一句SQL语句需要锁表,导致占时不能使用读服务,那么久很影响运行中的业务,使用主从复制,让主库负责写,从库复制读。这样,即使出库出现了锁表的情景,通过读从库也可以保证业务的正常运作。
2. 做数据的热备
3. 架构的扩展,随着业务量增大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。
二、主从复制原理图
1. 主服务器master将SQL写入到binlog中。
2. 从服务器slave连接主服务器master。
3. 主服务器master将binlog发到从服务器中。
4. 从服务器将binlog写入到relaylog中继日志中。
5. 从服务器读取主服务器传过来的binlog日志,对从服务器数据进行操作。
三、基于日志点方式复制配置步骤
1. 在主服务器上创建复制用户,并且复制权限
//创建用户命令
CREATE user‘user_name’@‘x.x.x.x’IDENTIFIED WITH mysql_native_password BY ‘password’
//赋值权限命令
GRANT REPLICATION SLAVE ON *.* TO ‘user_name’@’x.x.x.x’;
注意:
- mysql8之前的版本加密规则是mysql_native_password,而mysql8之后,加密规则是caching_sha2_password。如果使用新的加密规则。在后期从服务器进行连接主服务器时会连接不上。新的加密规则要求密码强度。
- 赋值创建用户权限,只需要给复制权限即可,即:REPLICATION SLAVE;
- 在MySQL8中不支持赋值权限的同时创建用户,必须分开写。
2. 配置主服务器MySQL配置文件My.ini(win