0. Thanks To
1. 概述
概念:
主从数据备份,是指,当主服务器上数据库中的数据变化的时候,从服务器的数据库跟着变化,从而达到实时备份的目的。
原理:
其大概的原理是:当主服务器上的数据发生变化的时候,主服务器会把这些变化记录到一个日志文件中,然后通知从服务器,从服务器会拉取这个日志文件中的变化信息,然后做出相应的数据变化。
深究其原理的话,主从服务器上对于这个日志文件都有着一个Position位置指针,都指向当前最新的位置,当发现其不同时,变会更新。
同步数据的类型
也就是mysql支持的复制类型:
(1):基于语句的复制: 在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。一旦发现没法精确复制时,会自动选着基于行的复制。
(2):基于行的复制:把改变的内容复制过去,而不是把命令在从服务器上执行一遍. 从mysql5.0开始支持
(3):混合类型的复制: 默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。
2. 配置过程
1)创建一个用户,用于从服务器登陆主服务器
从服务器需要跟主服务器建立连接,而这个连接是基于账号密码的。
创建账户语法示例:
MariaDB [test]> GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.*
-> TO kidBackup@'xxx.xxx.xxx.xxx'
-> IDENTIFIED BY 'ppp';
示例中,创建了一个只能由:xxx.xxx.xxx.xxx 登陆的密码为:ppp,名为:kidBackup的用户。
2)关闭主从的Mysql,先手动同步数据
在开启前,先保证主从的数据是一致的。
3)配置Master主服务器
找到Mysql的配置文件:my.cnf
位置在:
如果是lampp的Linux:/opt/lampp/etc/my.cnf
如果是直接安装的mysql的Linux:/user/local/mysql/my.cnf
找到后,打开配置文件,加入如下之:
server-id=1
log-bin=mysql-bin
binlog-do-db = test