ab复制的过程是:

1、从服务器向主服务器发送请求,

2、主服务器端返回给从服务器二进制日志文件名和位置信息,

3、IO线程把主服务器端的二进制日志内容依次写到从服务器端的relay log里,并把主服务器端的bin-log文件名和位置记录到master.info里。

4、从服务器端的sql线程检测到relay log中内容更新,就会解析relay log里更新的内容,并执行这些操作从而保证主从数据一致性。

接下来就是具体的配置过程:

   首先主服务器端要开启二进制日志,没开启的话一定要重启才生效,设置server_id号,添加用户并授权给此用户有复制的权限

例如:grant super,replications slave on *.* to 'slave'@'从服务器的ip地址' identified by '123';

   确保开启了二进制日志后就要对主服务器进行一次全备,并且记录下这次全备的log_bin文件名还有pos(用mysqldump备份加--master-data参数它会把二进制日志的文件名和位置也记录下来)

例如:mysqldump --master-data --all-databases > /opt/mysqlbackup.sql

   设置从服务器上的server_id号(不能跟主服务器上的server_id号一样)并把全备恢复到从服务器上,例如:mysql -uroot -p < mysqlbackup.sql(在从服务器上执行)

   在从服务器执行完数据导入后,在从服务器上登录mysql,设置主服务器端的相关信息。

例如:change master to

master_host='主服务器的ip地址',

master_user='主服务器上授权的用户名',

master_password='密码',

master_port=主服务器的端口,<------(这里是不需要双引号的)

master_log_file='二进制日志文件名',

master_log_pos=二进制日志备份的位置;<-------(这里是不需要双引号的)

   最后在从服务器上执行一下slave stop;slave start;然后用show slave status;


         Slave_IO_Running: Yes

         Slave_SQL_Running: Yes

如果成功了将会看到这两个yes,为了确保真的成功了,在主服务器上插入数据,看从能不能同步过来。

级联的架构是在主-从上把从当成主,然后再在下面加一个从。它们的配置很简单,只需要在ab复制的从上开启log_bin=xxx和log_slave_update=1,并在主上面添加用户并给它授权就可以了(例如:grant super,replication slave on *.* to 'slave'@'第二个从服务器上的ip地址' identified by '123';),然后在第二个从上面登录到mysql,并使用change master to来指定上一个从服务器的位置,用户名,密码,端口号,二进制日志,二进制日志位置。

主主结构结构就是在从服务器上开启二进制日志文件,然后在主上添加用户(例如:grant super,replication slave on *.* to 'slave'@'从服务器上的ip地址' identified by '123';),这样从服务器就会复制主服务器上的数据把这条记录添加到从服务器上,这样主去连从时就可以做复制了。在主上做跟从一样的操作就可以了。