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

一 设定主库

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

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

  1. 安装包准备:

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

Mysql -p修改密码:

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

之后重启服务:

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

5.查看二进制日志是否打开:

查看主库状态:

二 设定从库

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

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

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

查看从设备状态“

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

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

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

在slave端重新指定master_log_file和master_log_pos:

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

4.  主从测试

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

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

三 GTID主从复制

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

重启数据库服务:

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

查看状态:

测试

主库插入数据:

从库看到数据:

四  半同步复制

  1. 在主库端安装插件:

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

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

查看插件安装状态:

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

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

从库查看状态:

5.测试:

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

从库更新了数据:

猜你喜欢

转载自blog.csdn.net/letter_A/article/details/81516950