master //show master status\g; show slave status\G; 关闭防火墙和selinux 如下是一个线性的数据同步
主机一、192.168.122.20(主)
第一、编辑/etc/my.cnf
log-bin=mysql-bin
binlog-do-db=westos
binlog-ignore-db=mysql
server-id=1(后续的id必须不一样)
grant replication slave,reload,super on *.* to westos@'192.168.122.%' identified by 'westos';给远程的从授权
flush privileges
show master status\g;查看状态
主机2:slave1(从)192.168.122.5
server-id=2
log-bin=mysql-bin
binlog-do-db=westos
binlog-ignore-db=mysql
log-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=3
1、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.bak
mysql -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=3
log-bin=mysql-bin
binlog-do-db=westos
binlog-ignore-db=mysql
id 不同
一端执行
grant replication slave,reload,super on *.* to westos@'192.168.122.5' identified by 'westos'; 作为master
change master to master_host='192.168.122.2', master_user='westos', master_password='westos', master_log_file='mysql-bin.000009',master_log_pos=213;作为slave
ok!
#######################################################################
下面是常会遇到的一些问题
######################################################################################################33
简单备份恢复
mysqldump -pwestos westos> westos.bak
mysql -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=0
use `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=0
SET TIMESTAMP=1434330670/*!*/;
insert into users values ('user2','456')
/*!*/;
# at 1569
#150615 9:33:32 server id 1 end_log_pos 1588 Stop
DELIMITER ;
# 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