搭建一套完整的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 ...
随机推荐
- 【BZOJ1834】 网络扩容
Time Limit: 1000 ms Memory Limit: 128 MB Description 给定一张有向图,每条边都有一个容量C和一个扩容费用W.这里扩容费用是指将容量扩大1所需的费 ...
- 总结MySQL大数据量下如何进行优化
写在建库前: 在确定数据库业务后.建立数据库表格时,就应对一些常见问题有所考虑,以避免在数据增长一段时间后再做应对,可能造成时间及维护成本增加: 数据的月增量,年增量 数据的快速增长点 是否需要触发器 ...
- ios学习- 10大iOS开发者最喜爱的类库
该10大iOS开发者最喜爱的库由“iOS辅导团队”成员Marcelo Fabri组织投票选举而得,参与者包括开发者团队,iOS辅导团队以及行业嘉宾.每个团队都要根据以下规则选出五个最好的库: 1)不能 ...
- python介绍篇
二进制编码ASSIC 每一个字符统一都需要8个bit来存储 计算机容量 1位 = 1bit 8bit = 1byte = 1字节 1024bytes = 1kbytes =1KB 1024个字符,小文 ...
- nginx重写rewrite的[emerg] unknown directive
今天写nginx的重写规则.怎么写总是报这个错误.
- 利用squid 搭建简单的透明代理服务器
环境介绍 虚拟主机1: ip eth0192.168.0.100/24 eth1: 200.168.0.100/24 虚拟主机2(模拟外网) 200.168.0.109/24 (运行web serve ...
- R语言与格式、日期格式、格式转化
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- R语言的基础包中提供了两种类型的时间数据,一类 ...
- HighCharts之2D柱状图、折线图的组合双轴图
HighCharts之2D柱状图.折线图的组合双轴图 1.实例源码 DoubleAxis.html: <!DOCTYPE html> <html> <head> & ...
- Windows7 64位安装最新版本MySQL服务器
Windows7 64位安装最新版本MySQL服务器 近期,一直在研究MySQL数据库,经常修改配置文件,导致MySQL数据库无法使用,不得不反复重装MySQL数据库.以下是在Windows7 64位 ...
- 错误代码: 1054 Unknown column 't.createUsrId' in 'group statement'
1.错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:select count(t.id),t.`createUserId` fr ...