Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

一 设定主库

    环境:server4(主库端):  linux redhat6.5   ip:172.25.254.4

                server5(从库端):  linux redhat6.5   ip:172.25.254.5

  1. 安装包准备:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

  1. 将所有rpm包安装,并开启数据库服务。Grep password /var/log/mysql.log查看数据库密码:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

Mysql -p修改密码:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

3.编辑/etc/my.cfg设定服务器id为1,开启二进制日志,设定需要同步的数据库名和禁止同步的数据库名:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

之后重启服务:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

4.进入数据库的mysql库,建立账户并授权:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制5.查看二进制日志是否打开:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

查看主库状态:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

二 设定从库

  1. 安装所有mysql包开启数据库服务并设定密码。
  2. 编辑/etc/my.cfg并重启数据库服务:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

     3.设定从设备并开启从设备:

   将172.25.254.4主机当作主设备,以主设备端授权用户mysql的身份登录。master_log_file和master_log_pos的值都都依照主设备状态中的值来设定。

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

查看从设备状态“

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

如果Slave_IO_Running和Slave_SQL_Runing都为Yes表示服务正常。

从设备状态中slave_io_running为no表示负责与主机通信的io服务没开。

解决:停掉从库的slave,在主库端flush logs清空日志,重新查看主库状态:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

在slave端重新指定master_log_file和master_log_pos:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

之后开启slave查看状态,io为yes:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

4.  主从测试

主库端建立数据库test和数据表userlist:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

从库查看到主库新建的表内容:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

三 GTID主从复制

  1. 在主从库两端编辑/etc/my.cnf文件:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

重启数据库服务:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

2.从库停掉slave设定新参数:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

查看状态:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

测试

主库插入数据:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

从库看到数据:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

四  半同步复制

  1. 在主库端安装插件:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

       2.编辑主库配置文件/etc/my.cnf添加设置,之后重启数据库。

           对于配置文件中的timeout参数,后面的数值单位是毫秒。设定了这个时间后,在主库端执行数据操作指令,在经过这个时间之后,数据才会同步到从库。如果从库端设定STOP SLAVE IO_THREAD关闭从库端的IO接口,那么主库端的数据是无法同步到从库端的。开启IO接口后数据才会同步。

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

查看插件安装状态:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

3. 同样在从库端安装插件:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

4.编辑从库配置文件之后重启数据库服务:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

从库查看状态:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

5.测试:

在从库端start slave开启从库,主库端插入数据:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制

从库更新了数据:

Mysql5.7主从库设定、基于GTID的主从复制和半同步复制