MySQL 主从复制工作过程
1、二进制日志记录(Binary Logging):
主服务器开启二进制日志记录功能,将所有更改数据的操作(如 INSERT、UPDATE、DELETE)记录到二进制日志文件中。
2、日志传输(Log Shipping):
从服务器通过一个特殊的线程(I/O 线程)连接到主服务器,并请求读取主服务器的二进制日志文件。
3、日志应用(Log Apply):
从服务器接收到主服务器的二进制日志文件后,通过另一个特殊的线程(SQL 线程)将日志中的更改操作应用到从服务器的数据库中,从而实现数据的同步。
4、数据一致性:
通过上述过程,从服务器的数据与主服务器保持一致,实现数据的复制和同步。
首先准备三台虚拟机
主:192.168.1.11(mater)
从:192.168.1.130(slave1)
从:192.168.1.131(slave2)
一、192.168.1.11(mater)
#编辑配置文件
[root@master ~]# vim /etc/my.cnf
server_id=11#重新启动mysql
[root@master ~]# systemctl restart mysqld.service
#建立用户root远程连
#确保每台SLAVE都能连得上MASTER
GRANT REPLICATION SLAVE ON *.* TO 'root';
#查看日志文件名
SHOW MASTER status;
二、192.168.1.130(slave1)
#编辑配置文件
[root@master ~]# vim /etc/my.cnf
server_id=130#重新启动mysql
[root@master ~]# systemctl restart mysqld.service
#与Master(192.168.1.11主机)建立连接
CHANGE MASTER TOMASTER_HOST = '192.168.1.11',MASTER_USER = 'root',MASTER_PASSWORD = 'Mysql@123',MASTER_LOG_FILE = 'binlog.000003',MASTER_LOG_POS = 691;
mysql> start slave;
最终结果:
三、192.168.1.131(slave2)
操作同理slave2
#编辑配置文件
[root@master ~]# vim /etc/my.cnf
server_id=131#重新启动mysql
[root@master ~]# systemctl restart mysqld.service
#与Master(192.168.1.11主机)建立连接
最终结果: