master //show master status\g; show slave status\G; 关闭防火墙和selinux 如下是一个线性的数据同步
主机一、192.168.122.20(主)第一、编辑/etc/my.cnf log-bin=mysql-binbinlog-do-db=westosbinlog-ignore-db=mysqlserver-id=1(后续的id必须不一样)grant replication slave,reload,super on *.* to westos@'192.168.122.%' identified by 'westos';给远程的从授权flush privilegesshow master status\g;查看状态主机2:slave1(从)192.168.122.5 server-id=2 log-bin=mysql-binbinlog-do-db=westosbinlog-ignore-db=mysqllog-slave-updates以上四条是在从的后面再葛根从复制服务器添加的单纯的从只需要添加server-id即可。mysql> change master to master_host='192.168.122.20', -> master_user='westos', -> master_password='westos', -> master_log_file='mysql-bin.0.0000?',master_log_pos=? //在数据库配置连接到主服务器注?为 在master上操作 show master status\g;的具体显示 grant replication slave,reload,super on *.* to westos@'192.168.122.2' identified by 'westos';//这个是给下一个从服务器的授权这里是线性结构的主从及一主一从,从同时是下一个从的主一次类推可实现多连接。主机3:slave1的从属slave2 server-id=31、mysqlbinlog --start-datetime="2015-06-15 8:59:22" --stop-datetime="2015-06-15 9:03:52" mysql-bin.000004 随便想恢复一段数据 这个可以去/var/lib/mysql/ 找到二进制文件 mysqlbinlog mysql-bin.000004 选出你要恢复的时间段 如果要整个恢复 也可以直接使用 2、mysqldump -pwestos westos> westos.bakmysql -pwestos westos < westos.bak//这个操作用于恢复建立主从复制后把之前的数据拷贝成一样。有以上两种办法192.168.122.2 change master to master_host='192.168.122.5', master_user='westos', master_password='westos', master_log_file='mysql-bin.000001',master_log_pos=106;之后start slave 即可。//建立连接首先观测slave status io问题多是火墙 selinux 和打错代码所至
ps:后续补充一主多从的结构配置。
双向复制非常简单双向复制
两端都作server-id=3log-bin=mysql-binbinlog-do-db=westosbinlog-ignore-db=mysqlid 不同一端执行
grant replication slave,reload,super on *.* to westos@'192.168.122.5' identified by 'westos'; 作为masterchange master to master_host='192.168.122.2', master_user='westos', master_password='westos', master_log_file='mysql-bin.000009',master_log_pos=213;作为slaveok!
#######################################################################下面是常会遇到的一些问题######################################################################################################33简单备份恢复mysqldump -pwestos westos> westos.bakmysql -pwestos westos < westos.bak############################################################## at 1359#150615 9:11:03 server id 1 end_log_pos 1464 Query thread_id=17 exec_time=0 error_code=0use `westos`/*!*/;SET TIMESTAMP=1434330663/*!*/;insert into users values ('user1','123')/*!*/;# at 1464#150615 9:11:10 server id 1 end_log_pos 1569 Query thread_id=17 exec_time=0 error_code=0SET TIMESTAMP=1434330670/*!*/;insert into users values ('user2','456')/*!*/;# at 1569#150615 9:33:32 server id 1 end_log_pos 1588 StopDELIMITER ;# End of log file如上、 如果要恢复这两次插入操作 slave执行不是 mysqlbinlog --start-datetime="2015-06-15 9:11:03" --stop-datetime="2015-06-15 9:11:10" mysql-bin.000004 | mysql -uroot -pwestos 而是mysqlbinlog --start-datetime="2015-06-15 9:11:03" --stop-datetime="2015-06-15 9:33:32" mysql-bin.000004 | mysql -uroot -pwestos