Mysql replication设置

replication配置有下面优点:

(1) 数据分布
(2) 负载平衡(load balancing)
(3) 备份
(4) 高可用性(high availability)和容错

replication复制工作原理:

(1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
(2) slave将master的binary log events拷贝到它的中继日志(relay log);
(3) slave重做中继日志中的事件,将改变反映它自己的数据

简单的Master—Slave拓扑配置

准备2台linux服务器,并且都安装了相同版本的mysql服务端应用,局域网链接后,进行下面操作.
master ip:192.168.1.53
slave ip : 192.168.1.76

(1)修改master && slave 的 /etc/mysql/my.cnf 配置文件.

master:

#binlog
log-bin = maria-bin
binlog_format = mixed
server-id = 1

slave:

#binlog
log-bin = maria-bin
binlog_format = mixed
server-id = 2

修改my.cnf配置后,重启mysql服务.
service mysqld restart
如果上面命令不支持, 执行 /etc/init.d/mysql restart.

(2)在master服务器上操作添加允许slave replication授权登陆用户

GRANT REPLICATION SLAVE ON . TO ‘slave’@’192.168.1.76’ IDENTIFIED BY ‘123456’;
说明:slave为master新添加的用户,该用户的密码是123456..允许172.168.1.76使用该用户登陆master.
这样相当于master给slave开辟了一条通道.
这时候slave在终端通过 mysql -h192.168.1.53 -uslave -p123456应该就能登陆master.

(3)查看master binlog的日志记录,并记录下来

show master status;

MariaDB [my_db_connect]> show master status;
+--------------------+----------+--------------+------------------+
| File               | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mariadb-bin.000008 |     1756 |              |                  |
+--------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

(4)设置slave服务器,让他指向master

CHANGE MASTER TO
MASTER_HOST=’192.168.1.53’,
MASTER_USER=’slave’,
MASTER_PASSWORD=’123456’,
MASTER_LOG_FILE=’mariadb-bin.000008’,
MASTER_LOG_POS=1756;
参数解释:MASTER_HOST : 设置要连接的主服务器的ip地址
     MASTER_USER : 设置要连接的主服务器的用户名
     MASTER_PASSWORD : 设置要连接的主服务器的密码
    MASTER_LOG_FILE : 设置要连接的主服务器的bin日志的日志名称,即第3步得到的信息
    MASTER_LOG_POS : 设置要连接的主服务器的bin日志的记录位置,即第3步得到的信息,(这里注意,最后一项不需要加引号。否则配置失败)

(5)配置完成,先启动从服务器,并查看是否启动成功

start slave;
show slave status\G; //\G是按列显示,可视化更好
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
上面两项这样的结果表明启动成功.

这里我启动start slave后,会出错.
error connecting to master ‘slave@192.168.1.53:3306’ - retry-time: 60 retries: 86400 message: Can’t connect to MySQL server on ‘192.168.1.53’ (111 “Connection refused”)

解决方法参考:
http://www.cnblogs.com/zihanxing/p/7049244.html
修改master的my.cnf中的bind-address =0.0.0.0重启后,slave就自动链接到master了.以后master的所有操作slave就正常复制了.

如果要修改slave指向,stop slave后,从(4)开始重新设置指向其他的master.
明白了上面的原理,就可以添加多个slave,进行各种自己设计的拓扑结构设置。

当设计 master-slave1-slave2的线性拓扑结构时,注意slave1的my.cnf配置文件要修改1个参数,否则master变化后,只能slave1复制,slave2不同同步复制。
log-slave-updates= 1 从前一台机器上同步过来的数据才能同步到下一台机器 

复杂点的,多主或者多从的可以参考下面链接
http://blog.csdn.net/winsonyuan/article/details/44056751

(6)主从故障修复

因为replication是从设置完成后,开始复制,所以master已有的数据,新slave不存在。如果这时候在master修改了slave不存在的数据,那么slave就会报错,复制不了。需要把旧数据都备份到slave,然后重新配置master,slave链接。
还有一种情况,参考下面的链接。
http://www.cnblogs.com/hankyoon/p/5169680.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值