如何在Ubuntu 16.04下使用MySql的GR
发布时间 - 2026-01-11 00:25:25 点击率:次一、前言

该文章主要是记录下从一个纯净的系统开始如何安装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,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# ubuntu
# 16.04
# mysql
# 解决ubuntu 16.04安装mysql5.7.17后
# 登录时出现ERROR 1045 (28000): Access denied for user ''
# ubuntu 16.04下mysql5.7.17开放远程3306端口
# mysql 5.7.16 安装配置方法图文教程(ubuntu 16.04)
# mysql 5.7.17 安装配置方法图文教程(ubuntu 16.04)
# Ubuntu16.04 server下配置MySQL
# 并开启远程连接的方法
# ubuntu16.04.1下 mysql安装和卸载图文教程
# Ubuntu Server 16.04安装MySQL设置远程访问出现问题的完美解决方案(error:
# 不需要
# 可以通过
# 到此为止
# 连接到
# 小编
# 是在
# 都不
# 也会
# 你可以
# 第一个
# 都要
# 一句
# 安装了
# 在此
# 是这样
# 则是
# 一遍
# 我们可以
# 给大家
# 可以直接
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
中国移动官方网站首页入口 中国移动官网网页登录
Swift中switch语句区间和元组模式匹配
Python制作简易注册登录系统
Laravel PHP版本要求一览_Laravel各版本环境要求对照
javascript中对象的定义、使用以及对象和原型链操作小结
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
linux写shell需要注意的问题(必看)
Laravel如何使用Blade组件和插槽?(Component代码示例)
免费视频制作网站,更新又快又好的免费电影网站?
开心动漫网站制作软件下载,十分开心动画为何停播?
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
昵图网官网入口 昵图网素材平台官方入口
Laravel如何与Pusher实现实时通信?(WebSocket示例)
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
Laravel Docker环境搭建教程_Laravel Sail使用指南
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
如何在云主机上快速搭建网站?
Laravel用户密码怎么加密_Laravel Hash门面使用教程
Java遍历集合的三种方式
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
如何快速搭建个人网站并优化SEO?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
php 三元运算符实例详细介绍
网易LOFTER官网链接 老福特网页版登录地址
微信公众帐号开发教程之图文消息全攻略
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
详解CentOS6.5 安装 MySQL5.1.71的方法
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
如何在阿里云通过域名搭建网站?
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
微信小程序 wx.uploadFile无法上传解决办法
三星网站视频制作教程下载,三星w23网页如何全屏?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
在Oracle关闭情况下如何修改spfile的参数
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
canvas 画布在主流浏览器中的尺寸限制详细介绍
音乐网站服务器如何优化API响应速度?
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
网站制作大概多少钱一个,做一个平台网站大概多少钱?
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
javascript中的try catch异常捕获机制用法分析
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
北京企业网站设计制作公司,北京铁路集团官方网站?

