MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展。MySQL之间复制的基础是二进制日志文件,一台MySQL数据库一旦启用二进制日志后,其作为master,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。

搭建MySQL主从复制需要提前准备:

主服务器IP:192.168.177.128

从服务器1IP:192.168.177.151

从服务器2IP:192.168.177.152

搭建MySQL主从同步:

主服务器:

  1.开启时间同步

 systemctl stop firewalld.service  //关闭防火墙
 setenforce 0
 yum -y install ntp //安装ntp
 vim /etc/ntp.conf   //添加如下2行
     server 127.127.177.0                    //本地是时钟源//
    fudge 127.127.177.0 stratum 8          //设置时间层级为8(限制在15内)//
 systemctl restart ntpd.service    //重启ntpd服务
 在这里我装的是mysql5.5,在之前我有安装过,可以看我以前的博客。
  mysqladmin –u root password ’abc123’ //安装完之后为root用户设置密码 

      vim /etc/my.cnf   //进入配置文件

           server-id       = 11
           log-bin=master-bin                         //主服务器日志文件//
           log-slave-updates=true                     //从服务器更新二进制日志//

MySQL主从复制_第1张图片

    systemctl restart mysqld.service     //重启服务
3.进入mysql

   mysql -u root –p    abc123

     MySQL主从复制_第2张图片

从服务器(两台从服务器配置完全相同):

  1.开启时间同步

       yum install ntp ntpdate –y //安装ntp

    systemctl start ntpd.service //开启ntpd服务
      systemctl stop firewalld.service //关闭防火墙

  setenforce 0

  /usr/sbin/ntpdate 192.168.177.128    //进行时间同步,输入的是主服务器的地址//

2.安装mysql

  在这里我装的是mysql5.5,在之前我有安装过,可以看我以前的博客。
  mysqladmin –u root password ’abc123’ //安装完之后为root用户设置密码 

  vim /etc/my.cnf

    server-id       = 22

    relay-log=relay-log-bin                         //从主服务器上同步日志文件记录到本地//
    relay-log-index=slave-relay-bin.index           //定义relay-log的位置和名称//

            MySQL主从复制_第3张图片

  systemctl restart mysqld.service     //重启服务

3.进入mysql

  mysql -u root –p    abc123

      MySQL主从复制_第4张图片

      MySQL主从复制_第5张图片

还有另一台从服务器我就不在这里进行配置了,另一台配置与这台完全一样。

验证主从同步:

在主服务器里(192.168.177.128):创建一个新数据库

MySQL主从复制_第6张图片

在从服务器里(192.168.177.151):看是否有新创建的数据库

MySQL主从复制_第7张图片

以上,验证主从同步