搭建一套完整的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 ...
随机推荐
- Java版连连看
连连看大家应该都玩过,不多说直接上一个做好的界面截图吧,所有的功能都在上面的,要做的就只是如何去实现它们了. 差不多就是这个样子.先说一下大致的思路吧.首先编写基本的界面:把什么按钮啊,表格啊什么的都 ...
- ap module omap4460
http://gitorious.org/ap-module-omap4460 Dashboard Register Login Activities Projects Teams ap module ...
- Ubuntu 上查看硬件信息命令
1.Mint 驱动程序管理器是由 Linux Mint 团队开发的一款系统工具软件,使得用户在Linux系统中可容易安装专有驱动,通过一个直观的界面.由于 Mint 驱动程序管理器具有独立性,它支持所 ...
- ubuntu11.04编译gm8180的ffmpeg
1.1 About this documentThe ffmpeg is a open source package that provides video application for gener ...
- R语言实现︱局部敏感哈希算法(LSH)解决文本机械相似性的问题(二,textreuse介绍)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 上一篇(R语言实现︱局部敏感哈希算法(LSH) ...
- ffmpeg入门之 Tutorial01
#include <libavcodec/avcodec.h>#include <libavformat/avformat.h>#include <libswscale/ ...
- sudo:无法解析主机 解决方案
你如果电脑中没有vim,用gedit也可以. 打开文件以后,将其中的 127.0.1.1 xxxxx xxx 替换成你电脑的自己的名字即可.
- 《实战Nginx》读书笔记
最近今天读了一本书叫做<实战Nginx:取代Apache的高性能Web服务器>,看后对Nginx 了解了不少.但是还有很多地方不是很了解.不过此书可以作为一本参考手册来使用,里面的讲解很详 ...
- 【linux】启动apache遇到错误:httpd: Could not reliably determine the server's fully qualified domain name
1)进入apache的安装目录:(视个人安装情况而不同) [root@server ~]# cd /usr/local/apache/conf 2)编辑httpd.conf文件,搜索"#Se ...
- HighCharts之2D条状图
HighCharts之2D条状图 1.HighCharts之2D条状图源码 bar.html: <!DOCTYPE html> <html> <head> < ...