mysql的bean配置_Mysql主从复制原理及配置详解

Mysq主从复制是构建大型,高性能网站,保证数据安全性,完整性的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机(master)的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件(bin-log),并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。

环境:

操作系统: centos6.7

mysql版本: mysql5.5

IP:192.168.1.160(主master)  192.168.1.180(从slave)

配置步骤:

1、创建复制账号

mysql>grant replication client,replication slave on *.* to 'repl'@'192.168.1.%' identified by '123456';

2、拷贝数据

保持主从服务器上当前数据一致

3、配置主(master)服务器

打开主服务器 mysql 配置文件  一般linux系统下再 /etc/my.cnf (根据mysql配置文件位置调整)

[root@localhost /]# vim /etc/my.cnf

接下来对master进行配置,包括打开二进制日志,指定唯一的servr ID。例如,在配置文件加入如下值:

server-id=1

log-bin=mysql-bin

binlog-format=mixed

7efda2a938592415b6cc7e089450a618.png

server-id:为主服务器A的ID值

log-bin:二进制变更日值

binlog-format:二进制日志记录变化形式 参数  1 、statement 二进制记录执行语句  2、row 二进制记录磁盘变化   3、mixed 混合 由系统根据语句自动判断

重启master

[root@localhost /]#service mysqld restart

运行SHOW MASTER STATUS,

mysql> show master status;

输出如下:

904550334394529afbc96da3b713b96b.png

4、配置从(slave)服务器

打开从服务器 mysql 配置文件

[root@localhost /]# vim /etc/my.cnf

接下来对 slave 进行配置,包括打开二进制日志,指定唯一的servr ID。例如,在配置文件加入如下值:

server-id=2

log-bin=mysql-bin           [ *注意*:如果从服务器作为其他服务器的主服务器需开启,否则可以忽略]

binlog-format=mixed

relay-log=mysql-relay-bin

log-slave-updates=0         [*根据主服务器设置 一般为0]

d1415b87b13f069403c4fcda0fb35bb2.png

server-id:为主服务器B的ID值

log-bin:二进制变更日值

binlog-format:二进制日志记录变化形式 参数  1 、statement 二进制记录执行语句  2、row 二进制记录磁盘变化   3、mixed 混合 由系统根据语句自动判断

relay-log:配置中继日志,

log_slave_updates表示slave将复制事件写进自己的二进制日志(后面会看到它的用处)。

重启slave

[root@localhost /]#service mysqld restart

5、启动slave

接下来就是让slave连接master,并开始重做master二进制日志中的事件。使用CHANGE MASTER TO语句,该语句可以完全取代对配置文件的修改,而且它可以为slave指定不同的master,而不需要停止服务器。如下:

mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.160',

-> MASTER_USER='repl',

-> MASTER_PASSWORD='123456',

-> MASTER_LOG_FILE='mysql-bin.000003',

-> MASTER_LOG_POS=0;

MASTER_LOG_POS的值为0,因为它是日志的开始位置。

a01b9ccc5e6a1a838d2c5e4ce34f64b5.png

启动slave

mysql> START SLAVE;

你可以用SHOW SLAVE STATUS语句查看slave的设置是否正确:

2559d051ffe558596e34a93c0473f0ad.png

主要看这两项:Slave_IO_Running=Yes

Slave_SQL_Running=Yes

你可查看master和slave上线程的状态。在master上,你可以看到slave的I/O线程创建的连接:

在master上输入show processlist\G;  查看状态

7166001ef50b514cee9552bddef08125.png

在slave上输入show processlist\G;  查看状态

e14b0c62e9209db53beab4db324928fd.png

在 master 插入一条数据,测试一下,你会发现 slave 服务器会有一条相同的数据。

* stop slave 停止slave   start slave  开启slave

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值