一、MySQL主从复制的原理
1、mysql的复制过程:每执行一个写操作,它都会往自己的数据库中存一份,与此同时这个写操作也会存储在二进制日志文件中一份,并且把它们保存为事件,所以在这个数据库上,前端数据每执行一个写操作或者有可能引起修改的操作,都会保存一个事件,我们就把这个事件通过mysql服务器3306端口发送给另外一台服务器,另外一台服务器把这个事件接收下来,接受下来以后先保存在本地的日志文件中,而后从这个日志文件中一次读一个事件并且在本地执行一下,然后保存在数据库里面,这个过程就叫mysql的复制。如下图所示:
2、在这样一个模型当中,我们把允许来自外部操作记录下来记录到数据库中,并保存至二进制文件中的这台服务器叫做复制架构中主服务器(master)。主服务器中的日志文件叫二进制日志。
3、slave:从服务器中的日志文件是从主服务器中复制过来的,叫做中继日志,主要目的是复制下来,再在本地用一遍,相当于产生一个接力的过程。
4、主服务器允许并行执行,主服务器上若有多个CPU,它允许多个服务器并行执行。但是我们写到二进制文件中,只能一条一条的写,从服务器只能一条一条的执行。从服务器默认情况下也只能是一个进程,读一条执行一个,所以从服务器慢于主服务器。
二、MySQL主从复制实现的过程
1、主服务器的配置过程
1)添加系统用户并修改权限
2)下载mysql软件包解压后并创建链接
[root@node1 ~]# lftp 172.16.0.1/pub/Sources/mysql-5.5/ 下载mysql-5.5包
cd ok, cwd=/pub/Sources/mysql-5.5
lftp 172.16.0.1:/pub/Sources/mysql-5.5> ls
...
lftp 172.16.0.1:/pub/Sources/mysql-5.5> get mysql-5.5.28-linux2.6-i686.tar.gz
179907710 bytes transferred in 25 seconds (6.89M/s)
lftp 172.16.0.1:/pub/Sources/mysql-5.5> bye
3)初始化数据库并复制文件
4)修改配置文件并复制到从服务器
[root@node1 mysql]# vim /etc/my.cnf 修改配置文件内容如下: