Linux:MySQL主从复制原理及架构配置

192.168.100.30:主IP
192.168.100.40:从IP

mysql主从复制原理:
MySQL主从复制其实是一个异步复制的过程,要实现首先需要在master上开启bin-log日志功能,整个过程需要开启3个线程,分别是master开IO线程,slave开启IO线程和SQL线程。
1,在从服务器上执行slave start ,从服务器IO线程会通过授权用户连接master,并要求master从指定的文件和位置之后发送bin-log日志内容。
2,master服务器接收到来自slave服务器的IO线程的请求后,master服务器上的IO线程根据slave服务器发送指定bin-log日志之后的内容,然后返回给slave端的IO线程。(返回的信息除了bin-log日志内容外,还有本次返回日志内容后在master服务器端的新的bin-log文件名以及bin-log中的下一个指定更新位置)
3,slave的IO线程收到信息后,将接收到的日志内容依次添加到slave端的relay-log文件的最末端,并将读取到master端的bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉master“我需要从某个bin-log的那个位置往后的日志内容,发给我”
4,slave的SQL线程检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在master端真实执行时候的那些可执行的内容,并在自身执行。

1.修改主MySQL和备份MySQL的id号

vim /etc/my.cnf

主:改为一。
在这里插入图片描述从:改为2。
在这里插入图片描述

2.进入主MySQL。

	[root@Centos ~]# mysql -u root -p
	mysql> grant replication slave on *.* to 'tongbu'@'%' identified by '123456';
		Query OK, 0 rows affected (0.00 sec)
	mysql> show master status;

在这里插入图片描述
3.进入从MySQL。

	[root@Centos src]# mysql -u root -p
	mysql> change master to master_host='192.168.100.30',master_user='tongbu',master_password='123456',master_log_file='mysql-bin.000005',master_log_pos=251;
		Query OK, 0 rows affected (0.31 sec)
	mysql> slave start
	mysql> show slave status\G		#查看主从配置是否完成

在这里插入图片描述

发布了52 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/HCY_2315/article/details/102475385