如何在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语句

 mysql> SET SQL_LOG_BIN=0;
 mysql> CREATE USER rpl_user@'%';
 mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass';
 mysql> FLUSH PRIVILEGES; #在从数据库不需要执行
 mysql> SET SQL_LOG_BIN=1;
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');

Xamarin.Android -> Xamarin.IOS -> 混合 -> Xamarin.Forms

以上所述是小编给大家介绍的在Ubuntu 16.04下使用MySql的GR,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 解决ubuntu 16.04安装mysql5.7.17后,登录时出现ERROR 1045 (28000): Access denied for user 'root'@'localhost'问题

    一.问题描述 今天,笔者为了练习sql,在ubuntu16.04上安装了MySQL.笔者在网上搜索了在ubuntu16.04安装mysql的步骤,并跟着步骤一步步操作,然而,让笔者无法明白的是,网上说在安装mysql的过程会弹出输入密码的窗口,然而笔者在安装的过程中没有弹出任何窗口,而且也没有报错. 正当笔者在登录mysql时,问题就出现了,如图: 如图,笔者尝试多种输入方式,但都得到了一个同样地令人忧伤的结果,ERROR 1045 (28000): Access denied for user

  • Ubuntu16.04 server下配置MySQL,并开启远程连接的方法

    背景 最近正在学nodejs,想到曾经有台云服务器,但是很久不用了,由于怕麻烦,一股脑的把云主机重装了个Ubuntu系统,于是配置MySQL成了配置服务中的一个环节(node用不用MySQL不管,主要是闲的重新配置一个-.-),但是配置的过程中,遇到不少问题,所以在解决一系列问题后留篇博备以后使用. 步骤 1.安装MySQL 由于博主用的是Ubuntu Server,用的XShell工具,没用桌面版,所以没有高大上的图形界面,一股脑用软件源提供的mysql即可. 命令如下: sudo apt-g

  • ubuntu16.04.1下 mysql安装和卸载图文教程

     删除 MySQL sudo apt-get autoremove --purge mysql-server-* sudo apt-get remove mysql-server sudo apt-get autoremove mysql-server sudo apt-get remove mysql-common 清理残留数据 dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P 安装mysql 安装服务: 安装客户端: 安装完成后,M

  • mysql 5.7.17 安装配置方法图文教程(ubuntu 16.04)

    在MySQL官网上下载最新版的Ubuntu Linux专用的MySQL.我这里下载的是: mysql-server_5.7.17-1ubuntu16.04_amd64.deb-bundle.tar 也可从以下mirrors下载: http://mirrors.sohu.com/mysql/MySQL-5.7/ 解压文件 命令为: 复制代码 代码如下: root@ubuntu:/fly/mysql# tar -xvf ../mysql-server_5.7.17-1ubuntu16.04_amd6

  • ubuntu 16.04下mysql5.7.17开放远程3306端口

    开启MySQL的远程访问权限 默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限. 主流的有两种方法,改表法和授权法. 相对而言,改表法比较容易一点,个人也是比较倾向于使用这种方法,因此,这里只贴出改表法 1.登陆mysql mysql -u root -p 2.修改mysql库的user表,将host项,从localhost改为%.%这里表示的是允许任意host访问,如果只允许某一个ip访问,则可改为相应的ip,比如可以将l

  • Ubuntu Server 16.04安装MySQL设置远程访问出现问题的完美解决方案(error:10061)

    说明: 一个朋友在使用Ubuntu Server 16.04安装MySQL,设置远程访问的时候出现了问题,请我帮忙.但是,我也没有使用过Ubuntu安装MySQL,于是乎搜索了很多技术文件,比着葫芦画瓢.但是,由于MySQL版本的差异,导致在安装设置的过程中出现了一些问题:就是不能远程访问. 一.安装mysql 1. 安装需要使用root账号,如果不会设置root账号的请参考Linux公社的其他文章.安装mysql过程中,需要设置mysql的root账号的密码,不要忽略了. sudo apt-g

  • mysql 5.7.16 安装配置方法图文教程(ubuntu 16.04)

    Ubuntu16.04如何安装MySQL5.7? 安装主程序 主程序安装就我知道有两种方式: - 使用apt-get全自动安装 # 安装命令 apt-get install mysql-server # 安装过程中需要输入mysql的root密码 使用dpkg手动安装依赖包 # 1. 下载安装包 # 我测试过程中下载的是:mysql-server_5.7.16-1ubuntu16.04_amd64.deb-bundle.tar # 国内镜像站:http://mirrors.sohu.com/my

  • 如何在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-c

  • ubuntu 16.04 下如何设置root用户初始密码

    安装ubuntu成功后,都是普通用户权限,并没有最高root权限,如果需要使用root权限的时候,通常都会在命令前面加上 sudo .有的时候感觉很麻烦- 我们一般使用su命令来直接切换到root用户的,但是如果没有给root设置初始密码,就会抛出 su : Authentication failure 这样的问题.所以,我们只要给root用户设置一个初始密码就好了. 输入 sudo passwd 命令,输入一般用户密码并设定root用户密码. 设定root密码成功后,输入 su 命令,并输入刚

  • ubuntu 16.04下python版本切换的方法

    本文主要是记录ubuntu 16.04下python环境配置,具体内容如下 对于ubuntu 16.04,由于本身是自带python,这样就减少了在windows下的下载和环境变量配置,非常不错.但是他本身是自带两个版本的python,2.X和3.X,两个版本,两个版本默认的是使用2.X,毕竟3.X是一个趋势,今后我这边应该也会主要使用3.X版本,所以这里记录一下如果在版本间切换以及如何把python版本切换到3.X下的方法. 一.确认本机下的python默认版本.调出终端,输入python即可

  • 详解如何在Ubuntu 16.04上增加Swap分区

    前言 提高服务器响应速度和防止应用程序内存不足错误的最简单方法之一是添加一些交换空间. 在本指南中,我们将介绍如何将交换文件添加到Ubuntu 16.04服务器. 但是,请注意: 尽管swap区通常建议用于使用传统旋转硬盘驱动器的系统,但使用与SSD交换可能会导致随着时间的推移硬件退化问题. 由于这个考虑,我们不建议在DigitalOcean或任何其他使用SSD存储的供应商上启用swap分区. 这样做可能会影响到您和您的邻居的底层硬件的可靠性. 本指南仅供可能在其他地方有使用旋转磁盘系统的用户参

  • ubuntu 16.04下不能启动Steam的解决方法

    前言 之前卸过一次steam,因为Linux玩游戏确实体验没有Windows好. 最近想重新安装.我的系统版本已经升级到 Ubuntu 16.04 LST 版本,并且我的显卡是amd64. 安装steam后运行报错了: $ steam Setting up Steam content in /home/weapon/.local/share/Steam Running Steam on ubuntu 16.04 64-bit STEAM_RUNTIME is enabled automatica

  • Ubuntu 16.04下无法安装.deb的解决方法

    前言 本文主要给大家讲述了在 Ubuntu 16.04 在刚安装好的时候,下载一些 .deb 软件后,通过 Ubuntu Softwrare Center 无法安装的解决方案.下面话不多说,来看看详细的介绍吧. 问题 当刚安装好 Ubuntu 16.04 后,发现要安装 chrome 和 搜狗拼音都安装不了,下载的是 .deb 文件,出现图片中的问题. 解决方案 sudo apt-get install gdebi 接着在右击你要安装的 .deb 文件,选择 Open With -> GDebi

  • Ubuntu 16.04下安装PHP 7过程详解

    前言 最近由于换了硬盘重装了(升级)系统到Ubuntu16.04之后,开发环境也要重新安装,其实16.04源里面默认的PHP版本就是7.x,但是有个问题就是没有OCI扩展,有项目需要使用到Oracle数据库. 准备编译环境 由于全部编译太过于繁琐,而且很多依赖会有问题,所以我们选择另外一种方案,能使用apt-get安装都使用apt-get安装.不能使用apt-get才自己编译,这样可以节省大量的时间.因为有的依赖真的是很头疼. 由于在Ubuntu16.04上,默认的PHP版本就是7.x.由于我们

  • Ubuntu 14.04下安装MySQL

    1.更新源列表打开"终端窗口",输入"sudo apt-getupdate"-->回车-->"输入root用户的密码"-->回车,就可以了.如果不运行该命令,直接安装mysql,会出现"有几个软件包无法下载,您可以运行apt-getupdate------"的错误提示,导致无法安装. 2.安装mysql 打开"终端窗口",输入"sudo apt-get install mysql

  • 解决Ubuntu 16.04下提示boot分区空间不足的办法

    前言 因为linux内核一直在更新,更新后,旧的内核就不在使用,但旧的内核文件还在boot里面,占据着空间,更新几次过后boot分区就会被占满,显示boot磁盘空间不足. 解决办法 将不用的内核文件删除,释放空间. 步骤如下 一.查看已安装的内核dpkg --get-selections |grep linux-image eason@eason:~$ dpkg --get-selections |grep linux-image linux-image-4.4.0-21-generic dei

随机推荐