一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人,如有侵权请留言,我及时删除。
主库会生成一个I/O操作线程进去写的的操作,而从库则生成两个线程,其一是I/O读取线程,其二是一个SQL线程。
1、主库将数据的操作记录到一个二进制日志中(即:binary log),也就是配置文件中指定的log-bin指定的文件就是日志文件。
2、从库将主库的日志文件拷贝到他的中继日志即配置文件中指定的relay log日志文件中,I/O线程去请求主库的bin-log日志,并将日志写入到relay log中继日志中,此时主库会生成一个log dump线程,用来给从库I/O线程传输bin-log日志件。
3、从库会更新relay log文件中的操作,将数据的改变在从库中进行数据重演即重新执行一次,即SQL线程执行操作,将日志文件中的记录变为数据操作行为再次执行,以达到主从数据最终一致性的目的。
4、需要注意的是主从复制需要大量的I/O操作,所以延时是不可避免的。
1、主从复制的流程图
2、主从复制的优点
准备两台服务器(模拟一主一从),并安装相同版本的MySQL数据库。
主库(master)地址:192.168.10.212?端口:3306。
从库(slave)地址:197.168.197.213?端口:3306。
版本:MySQL 8.0.25。
准备工作注意事项:
1、 每个master可以有多个slave,每个slave只属于一个master;
2、 数据库的版本必须保证一致;
3、 主库与从库中配置文件中的server_id都必须唯一。
4、硬件配置,操作系统必须保持一致
5、网络带宽满足业务要求,避免网络延迟过长
四、开始部署
1、MySQL-master 修改配置文件,重启服务
[root@master etc]# vi my.cnf
-----新增配置-----
server-id=1
read-only=0
------------------------------
1.1、创建登录MySQL,创建远程连接的账号,并授予主从复制的权限
USE mysql;
CREATE USER 'itcast'@'%' IDENTIFIED WITH mysql_native_password BY 'Ops7565!#!#';
GRANT REPLICATION SLAVE ON *.* TO 'itcast'@'%';
SHOW MASTER STATUS;
2、MySQL-slave配置,重启数据库
[root@slave ~]# vi /etc/my.cnf
--------新增配置---------------
server-id=2
read-only=1
--------------------------------------
查看主从server-id?
参考文档
mysql 从库显示:Slave_IO_Running: No 怎么办? - 简书
2.2、从库配置,关联主库
mysql> CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.10.212',SOURCE_USER='itcast',SOURCE_PASSWORD='Ops7565!#!#',SOURCE_LOG_FILE='binlog.000002',SOURCE_LOG_POS=665;
Query OK, 0 rows affected, 2 warnings (0.02 sec)
2.3、启动主从复制
启动\停止主从命令
START REPLICA; 或者 start slave? 停止同步 stop?REPLICA/start slave?
mysql> ? START ?REPLICA;
Query OK, 0 rows affected (0.00 sec)
mysql> ?SHOW SLAVE STATUS\G
1、创建数据库,并在数据库中创建一个表
-- 创建数据库
CREATE DATABASE dbtest01;
USE mydatabase;
?
-- 创建表
CREATE TABLE test01(
? ? id INT PRIMARY KEY AUTO_INCREMENT,
? ? name VARCHAR(50),
? ? age INT
);
2、主从同步查看
MySQL主节点创建数据库dbtest01,并穿件01表;
主从库查看表
3、测试增、删、改 数据
主库操作,新增数据:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 备库操作,查看新增数据:
主库操作,修改数据:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?从库操作,查询数据:?
主库操作,删除数据:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??从库操作,查询数据:?
五、主从复制总结