主从复制是MySQL中最重要的功能之一。主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。对于多级复制,数据库服务器即可充当主机,也可充当从机。MySQL主从复制的基础是主服务器对数据库修改记录二进制日志,从服务器通过主服务器的二进制日志自动执行更新。
主从复制的类型:
1.基于语句的复制
主服务器上面执行的语句在从服务器上面再执行一遍存在的问题:时间上可能不完全同步造成偏差,执行语句的用户也可能不是同一个用户。
2.基于行的复制
把主服务器上面改编后的内容直接复制过去,而不关心到底改变该内容是由哪条语句引发的存在的问题:比如一个工资表中有一万个用户,我们把每个用户的工资+1000,那么基于行的复制则要复制一万行的内容,由此造成的开销比较大,而基于语句的复制仅仅一条语句就可以了。
3.混合类型的复制
MySQL默认使用基于语句的复制,当基于语句的复制会引发问题的时候就会使用基于行的复制,MySQL会自动进行选择。
主从复制的原理:
主服务器上面的任何修改都会保存在二进制日志Binary log里面
从服务器上面启动一个I/O thread,连接到主服务器上面请求读取二进制日志,然后把读取到的二进制日志写到本地的一个Realy log(中继日志)里面。
从服务器上面开启一个SQL thread定时检查Realy log,如果发现有更改立即把更改的内容在本机上面执行一遍。
主从复制的步骤:
主服务器:ip:192.168.1.200 3307 系统:Rhel7 数据库Maria DB