实战项目——mysql主从架构的实现 (4)

  还有一种数据库的架构为双主模式,也就是互为主从,这种设定在企业中虽不常用,但是我们还是需要掌握的。
  Master-Master复制的两台服务器,既是master,又是另一台服务器的slave。这样,任何一方所做的变更,都会通过复制应用到另外一方的数据库中。
  架构图如下:

实战项目——mysql主从架构的实现

2.1 环境准备:

  centos系统服务器2台、 两台用户实现Mysql互为主从, 配置好yum源、 防火墙关闭、 各节点时钟服务同步、 各节点之间可以通过主机名互相通信

2.2 准备步骤:

1)iptables -F && setenforce 清空防火墙策略,关闭selinux
2)拿两台服务器都使用yum方式安装Mysql服务, 要求版本一致
3)分别启动两台服务器mysql服务, 确保服务正常

2.3 实现步骤: 2.3.1 配置第一台 master 主服务器 server-id = 1      //配置server-id,让主服务器有唯一ID号 log-bin = mysql-bin  //打开Mysql日志,日志格式为二进制 skip-name-resolve   //关闭名称解析,(非必须) relay_log = mysql-relay-bin //打开Mysql日志,日志格式为二进制 read_only = 1 //设置只读权限 log_slave_updates = 1 //使得更新的数据写进二进制日志中 auto_increment_offset = 1    //表示自增长字段从那个数开始 auto_increment_increment = 2  //表示自增长字段每次递增的量

实战项目——mysql主从架构的实现

2.3.2 配置第二台 master 主服务器 server-id = 2      //配置server-id,让主服务器有唯一ID号 log-bin = mysql-bin  //打开Mysql日志,日志格式为二进制 skip-name-resolve   //关闭名称解析,(非必须) relay_log = mysql-relay-bin //打开Mysql日志,日志格式为二进制 read_only = 1 //设置只读权限 log_slave_updates = 1 //使得更新的数据写进二进制日志中 auto_increment_offset = 2    //表示自增长字段从那个数开始 auto_increment_increment = 2  //表示自增长字段每次递增的量

实战项目——mysql主从架构的实现

2.3.3 创建复制账号

  因为我们实现的是双主模式,所以我们每一台机器上都要创建复制账号:

实战项目——mysql主从架构的实现


实战项目——mysql主从架构的实现

2.3.4 查看服务器状态

  我们分别查看两台服务器的状态,从而为我们下一步的设置奠下基础:

实战项目——mysql主从架构的实现


实战项目——mysql主从架构的实现

2.3.5 启动复制线程

  我们来分别对两台机器进行的设置:
  首先,先对第一台 master 机器进行设置:

MariaDB [(none)]> change master to master_host='192.168.37.222',master_user='slave',master_password='keer',master_log_file='mysql-bin.000003',master_log_pos=245; MariaDB [(none)]> start slave;

  接着,我们来查看一下他的状态:

实战项目——mysql主从架构的实现

  现在,我们来对第二台 master 进行设置:

MariaDB [(none)]> change master to master_host='192.168.37.111',master_user='slave',master_password='keer',master_log_file='mysql-bin.000002',master_log_pos=245; MariaDB [(none)]> start slave;

  我们来查看一下他的状态:

实战项目——mysql主从架构的实现

  
  可以看出,我们的两个机器都设置完毕,接下来,我们就可以来测试一下了。

2.3.5 测试

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxjzx.html