搭建一套完整的Mysql5.7innodbcluster(GroupReplication+mysqlrouter)
先说三个大步骤:
搭Mysql5.7 Group Replication ,配置成单主模式
安装Mysqlshell,配innodbcluster
安装Mysql-router
第一步:搭Mysql5.7 Group Replication ,配置成单主模式
为了节省步骤,我们用RPM方式安装
yum install -y libaio yum install libnuma* -y
rpm -qa | grep -i mysql # 这一步找到旧的mysql
rpm -e mysql-libs-5.1.-.el6_8.x86_64 --nodeps #我测试的实例上只有这个,删了
rpm -ivh mysql-community-common-5.7.-.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.-.el6.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.-.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.-.el6.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.-.el6.x86_64.rpm
rpm -ivh mysql-community-embedded-5.7.-.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.-.el6.x86_64.rpm
rpm -qa | grep mysql #验证
拷贝cnf.和服务文件
cp mysqld33* /etc/init.d/
cp -r mysql33* /home/wokofo/
配置文件:
[mysqld]
#skip-grant-tables=
datadir=/home/wokofo/mysql3306/data
socket=/home/wokofo/mysql3306/mysql.sock
log-error=/home/wokofo/mysql3306/mysqld.log
pid-file=/home/wokofo/mysql3306/mysqld.pid
port=
symbolic-links=
user = mysql
server_id =
skip_ssl 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
expire_logs_days=
relay_log=relay-log
character_set_server=utf8mb4
max_connections=
open_files_limit=
slow_query_log= long_query_time=1.000
skip_name_resolve=on
sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER
max_allowed_packet= transaction_write_set_extraction = XXHASH64
loose-group_replication_group_name="81125aaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address="172.16.81.127:13306"
loose-group_replication_group_seeds="172.16.81.125:13306,172.16.81.126:13306,172.16.81.127:13306"
loose-group_replication_ip_whitelist = "127.0.0.1,172.16.0.1/16"
启动服务:
在主节点上执行:
set sql_log_bin=;
grant replication slave,replication client on *.* to 'repluser'@'%' identified by '*************';
flush privileges;
set sql_log_bin=; install plugin group_replication soname 'group_replication.so'; change master to master_user='repluser',master_password='***********************' for channel 'group_replication_recovery';
set global group_replication_bootstrap_group=ON;
START group_replication;
set global group_replication_bootstrap_group=OFF;
exit;
其他节点上执行:
change master to master_user='repluser',master_password='****************' for channel 'group_replication_recovery'; #这一步如果不是空库,需要自己调
set global group_replication_allow_local_disjoint_gtids_join=ON;
START group_replication;
任意节点上执行
select * from performance_schema.replication_group_members;
验证成功,步骤一完成,GR集群搭建成功
第二步:安装Mysqlshell,配innodbcluster
rpm -ivh mysql57-community-release-el6-.noarch.rpm
yum install -y mysql-shell
python -V #如果低于2.7需要升级
mysqlsh --uri dba@172.16.81.125:3306
Creating a Session to 'dba@172.16.81.125:3306'
Enter password: mysql-js> var cluster=dba.createCluster('fvt01',{adoptFromGR:true});
A new InnoDB cluster will be created on instance 'dba@172.16.81.125:3306'. Creating InnoDB cluster 'fvt01' on 'dba@172.16.81.125:3306'...
Adding Seed Instance... Cluster successfully created. Use Cluster.addInstance() to add MySQL instances.
At least 3 instances are needed for the cluster to be able to withstand up to
one server failure. mysql-js> cluster.status()
{
"clusterName": "fvt01",
"defaultReplicaSet": {
"name": "default",
"primary": "172.16.81.125:3306",
"status": "OK",
"statusText": "Cluster is ONLINE and can tolerate up to ONE failure.",
"topology": {
"172.16.81.125:3306": {
"address": "172.16.81.125:3306",
"mode": "R/W",
"readReplicas": {},
"role": "HA",
"status": "ONLINE"
},
"l-fvt-mysql2.beta0.cn2:3306": {
"address": "l-fvt-mysql2.beta0.cn2:3306",
"mode": "R/O",
"readReplicas": {},
"role": "HA",
"status": "ONLINE"
},
"l-fvt-mysql3.beta0.cn2:3306": {
"address": "l-fvt-mysql3.beta0.cn2:3306",
"mode": "R/O",
"readReplicas": {},
"role": "HA",
"status": "ONLINE"
}
}
}
}
mysql-js> dba.configureLocalInstance("dba@127.0.0.1:3306")
Please provide the password for 'dba@127.0.0.1:3306': Detecting the configuration file...
Default file not found at the standard locations.
Please specify the path to the MySQL configuration file: /home/wokofo/mysql3306/my.cnf
Validating instance... The instance '127.0.0.1:3306' is valid for Cluster usage
You can now use it in an InnoDB Cluster. {
"status": "ok"
}
mysql-js> ctrl c
Bye!
第三步:安装Mysql-router
yum install mysql-router mysqlrouter --bootstrap 172.16.28.105
chown mysql:mysql /etc/mysqlrouter/mysqlrouter.conf cd /usr/local/
mysqlrouter --bootstrap dba@172.16.81.125: --directory myrouter --user mysql --force
cd myrouter/ cat mysqlrouter.conf sh start.sh netstat -anp |grep router
搭建一套完整的Mysql5.7innodbcluster(GroupReplication+mysqlrouter)的更多相关文章
- 基于springboot+bootstrap+mysql+redis搭建一套完整的权限架构【六】【引入bootstrap前端框架】
https://blog.csdn.net/linzhefeng89/article/details/78752658 基于springboot+bootstrap+mysql+redis搭建一套完整 ...
- 分享Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站
这是个什么的项目? 使用 Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站. 博客线上地址:www.boblog.com Github地址:https: ...
- 手把手0基础项目实战(一)——教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)...
原文:手把手0基础项目实战(一)--教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)... 本文你将学到什么? 本文将以原理+实战的方式,首先对& ...
- 使用express+shell在服务器上搭建一套简单的前端部署系统
前言 个人项目越来越多,部署需要频繁操作服务器,所以手动搭建一套简单的部署系统. 效果如图 其中包含 原生html+css+js项目,单页面react, vue, angular项目,实现了一键打包发 ...
- 部署一套完整的Kubernetes高可用集群(二进制,v1.18版)
一.前置知识点 1.1 生产环境可部署Kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式: kubeadm Kubeadm是一个K8s部署工具,提供kubeadm ...
- 部署一套完整的Kubernetes高可用集群(二进制,最新版v1.18)下
七.高可用架构(扩容多Master架构) Kubernetes作为容器集群系统,通过健康检查+重启策略实现了Pod故障自我修复能力,通过调度算法实现将Pod分布式部署,并保持预期副本数,根据Node失 ...
- 搭建一套自己实用的.net架构(3)续 【ORM Dapper+DapperExtensions+Lambda】
前言 继之前发的帖子[ORM-Dapper+DapperExtensions],对Dapper的扩展代码也进行了改进,同时加入Dapper 对Lambda表达式的支持. 由于之前缺乏对Lambda的知 ...
- 搭建一套自己实用的.net架构(3)【ORM-Dapper+DapperExtensions】
现在成熟的ORM比比皆是,这里只介绍Dapper的使用(最起码我在使用它,已经运用到项目中,小伙伴们反馈还可以). 优点: 1.开源.轻量.小巧.上手容易. 2.支持的数据库还蛮多的, Mysql,S ...
- 搭建一套自己实用的.net架构(4)【CodeBuilder-RazorEngine】
工欲善其事必先利其器, 下面来说说代码生成器. 现在代码生成器品种繁多各式各样, 什么codesmith.T4. 动软也算.那么每款代码生成器都有自己模板解析引擎. 现在比较流行的 NVelocit ...
随机推荐
- mongodb副本集搭建过程中的问题和解决技巧
在我以往的认知中,一个系统一旦正式上线,多半不会轻易的迁移服务器,尤其是那种涉及到多个关联应用,涉及到多台硬件服务器的系统,因为这种迁移将是牵一发而动全身的. 但是,却仍然有这种情况存在,就如我这几天 ...
- 为Hi3531添加4串口支持
修改文件为 linux-3.0.y\arch\arm\mach-godnet\core.c linux-3.0.y\arch\arm\mach-godnet\include\mach\irqs.h 修 ...
- 利用squid 反向代理提高网站性能
部分转自:http://www.ibm.com/developerworks/cn/linux/l-cn-squid/ Squid 反向代理的实现原理 目前有许多反向代理软件,比较有名的有 Nginx ...
- PHP simpleXML文件编程
SimpleXML simpleXML该技术的核心思想是以面向对象的方式来操作xml文件 <?php //simplexml文件 讲所有的元素转成对象 $library=simplexml_lo ...
- org.hibernate.engine.jndi.JndiException:Error parsing JNDI name[foo]
1.错误描述 WARN:HHH00027:Could not bind factory to JNDI org.hibernate.engine.jndi.JndiException:Error pa ...
- iOS - Quartz 2D 画板绘制
1.绘制画板 1.1 绘制简单画板 PaintBoardView.h @interface PaintBoardView : UIView @end PaintBoardView.m @interfa ...
- shiro的登陆认证(shiro项目中来的一)
一,图解 二,流程 2.1,创建token令牌,token中有用户提交的认证信息即账号和密码 Subject subject = SecurityUtils.getSubject(); Usernam ...
- 通过ApplicationContext.getBean(beanName)动态加载数据。
一,前台数据 $.ajax({ url: '/intra/coe/order/ploadTable.htm', type: 'POST', dataType: 'json', data: {keyId ...
- 洛谷P3796 【模板】AC自动机(加强版)(AC自动机)
洛谷题目传送门 先膜一发yyb巨佬 orz 想学ac自动机的话,推荐一下yyb巨佬的博客,本蒟蒻也是从那里开始学的. 思路分析 裸的AC自动机,这里就不讲了.主要是这题太卡时了,尽管时限放的很大了.. ...
- 【NOIP2009】【CJOJ1687】【洛谷1074】靶形数独
题面 Description 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z博士请教,Z 博士拿出 ...