zoukankan      html  css  js  c++  java
  • 如何在Ubuntu_16_04下使用MySql的GR

    一、前言

    该文章主要是记录下从一个纯净的系统开始如何安装MySql 5.7.17 并且使用GR,以便于自己后期查看以及分享给他人。

    二、安装mysql

    因为默认ubuntu的源并不是最新的mysql所以我们需要如下几个步骤安装最新的安装包,当然我们这里还是使用的apt去安装。

    1.下载apt仓库

    sudo wget https://repo.mysql.com//mysql-apt-config_0.8.3-1_all.deb

    2.安装apt仓库

    sudo dpkg -i mysql-apt-config_0.8.3-1_all.deb

    在安装的过程中会出现一个界面让其选择版本,这里大家只要让第一个选择 5.7 版本即可,当然你可以选择 8.0。

    3.升级apt仓库并安装mysql

    sudo apt-get update
    sudo apt-get install mysql-server

    到此为止我们就已经安装了最新的MySql版本了,下面就是关键的配置部分建议大家先通读一遍,不要直接上来按照这个来。

    三、开启GR

    1.修改配置

    首先打开/etc/mysql/下的my.cnf配置并写入以下配置信息:

    server_id=1
    bind-address=0.0.0.0
    gtid_mode=ON
    enforce_gtid_consistency=ON
    master_info_repository=TABLE
    relay_log_info_repository=TABLE
    binlog_checksum=NONE
    log_slave_updates=ON
    log_bin=binlog
    binlog_format=ROW
    transaction_write_set_extraction=XXHASH64
    loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
    loose-group_replication_start_on_boot=off
    loose-group_replication_local_address= "10.0.0.4:24901"
    loose-group_replication_group_seeds= "10.0.0.4:24901,10.0.0.5:24902,10.0.0.6:24903"
    loose-group_replication_bootstrap_group= off

    这里有一个配置想要说明下,其中“server_id”必须保证每个机器都不相同,可以直接使用ip地址的第四部分,“loose-group_replication_group_nam”在每个机器上都要一致,这个等同于一个组的标识。剩下的另一个不同的就是参数“loose-group_replication_local_address”这个必须指定为当前机器的IP地址,而后面的端口则是表示GR需要监听的端口,只要保证在其他机器中参数“loose-group_replication_group_seeds”中的机器的IP地址和端口正确可以任意修改该端口(该端口是独立于mysql默认的3306端口的)。

    完成以上操作之后重启mysql服务

    sudo service mysql restart

    2.新建用户

    首先我们连接到当前数据库中

    mysql -u root -p

    执行以下sql语句

    1 mysql> SET SQL_LOG_BIN=0;
    2 mysql> CREATE USER rpl_user@'%';
    3 mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass';
    4 mysql> FLUSH PRIVILEGES; #在从数据库不需要执行
    5 mysql> SET SQL_LOG_BIN=1;
    6 mysql> CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass'  FOR CHANNEL 'group_replication_recovery';

    如果是生产环境,用户可以自己设置对应的账户和密码,这里作为测试就直接使用官方提供的了。

    3.安装插件

    我们继续执行对应的sql语句

    mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';

    如果我们想查看当前是否已经安装了该插件,可以通过下面的语句查询

    mysql> SHOW PLUGINS;

    4.配置Hosts

    在开启最终的GR之前我们需要修改对应的hosts,将主机名和IP对应起来,否则后面在连接到其他节点的时候会发生无法连接,因为mysql依赖主机名去连接。

    打开hosts

    sudo vim /etc/hosts

    写入如下内容(我当前的环境和机器名是这样的)

    10.0.0.4 mysql-1
    10.0.0.5 mysql-2
    10.0.0.6 mysql-3

    完成上面的配置后退出,我们进入到mysql中接着继续执行

    5.开启GR

    以下方式是在主节点的开启方式(只在我们第一次安装的时候需要这样后面不需要)

    mysql> SET GLOBAL group_replication_bootstrap_group=ON;
    mysql> START GROUP_REPLICATION;
    mysql> SET GLOBAL group_replication_bootstrap_group=OFF;

    在从属节点上只要执行以下一句

    mysql> START GROUP_REPLICATION;

    如果我们要查看当前是否加入成功,可以通过下面的语句查看:

    mysql> SELECT * FROM performance_schema.replication_group_members;

    到此为止所有的配置就都结束了,其他从属节点只要按照上面的步骤执行即可,对于测试,我们需要在主节点上新建数据库,创建表并写入数据,其他数据库也会同步。然后关闭主节点之后,通过以下语句

    我们可以查询当前哪个节点为主节点了:

    mysql> select *from performance_schema.replication_group_members where member_id =(select variable_value from performance_schema.global_status WHERE VARIABLE_NAME= 'group_replication_primary_member');
  • 相关阅读:
    Java 5,6,7,8,9,10,11新特性
    LINUX中如何查看某个端口是否被占用
    Springboot项目全局异常统一处理
    面试笔记
    springboot几篇文章
    Mysql索引会失效的几种情况分析
    数组变成集合的方法
    集合变成数组的方法 Collections里面的方法
    list类里面的东西加锁 (手动加锁方法)
    Collections里面的一些方法
  • 原文地址:https://www.cnblogs.com/yaozhenfa/p/6638475.html
Copyright © 2011-2022 走看看