MySQL 8.0.18 InnoDB Cluster 主从(MGR)完整安装配置
提示: MySQL InnoDB Cluster底层依赖Group Replication模式,至少3台机器
1. 准备3台 CentOS Linux 7 (Core), 修改各主机名:db-host1, db-host2, db-host3 然后配置各台机器 hosts 映射, 对应如下
cat << EOF >> /etc/hosts
192.168.50.181 db-host1
192.168.50.182 db-host2
192.168.50.183 db-host3
EOF
2. 确保3台服务器要互相访问正常,为了保险期间请关闭防火墙,firewalld常用命令 如:
# 启动
systemctl start firewalld # 关闭
systemctl stop firewalld # 查看状态
systemctl status firewalld # 开机禁用
systemctl disable firewalld # 开机启用
systemctl enable firewalld # 查看所有打开的端口
firewall-cmd --zone=public --list-ports
3. 确保互访使用ssh 共享,这里使用root 账户 如:在db-host1 执行,其它以此类推:
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.50.182 ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.50.183
4. 准备安装 mysql-community-server,mysql-shell,mysql-router 在3台机器安装,注意版本:
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
yum install mysql-community-server
wget https://dev.mysql.com/get/Downloads/MySQL-Shell/mysql-shell-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-shell-8.0.18-1.el7.x86_64.rpm
yum install mysql-shell
wget https://dev.mysql.com/get/Downloads/MySQL-Router/mysql-router-community-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-router-community-8.0.17-1.el7.x86_64.rpm
yum install mysql-router
5. 安装完MysqlServer 后,依次每台初始化mysql,步骤如下:#初始化:
mysqld --initialize; #赋访问权限:
chown mysql:mysql /var/lib/mysql -R #启动mysql服务:
systemctl start mysqld.service; #设置mysql开机自启
mysql systemctl enable mysqld; #命令查看数据库的密码:
cat /var/log/mysqld.log | grep password #进入mysql命令行:
mysql -uroot -p (输入上述查看的数据库密码进入mysql命令行)
#命令来修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码'; #创建远程访问权限:
create user 'root'@'%' identified with mysql_native_password by '密码'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; flush privileges;
6. 由于依赖组复制,在host1 修改 /etc/my.cnf
server_id = 4000000161
loose-group_replication_group_name="a38e32fd-5fb6-11e8-ad7a-00259015d941"
loose-group_replication_local_address= "192.168.50.181:3306"
loose-group_replication_group_seeds= "192.168.50.181:3306,192.168.50.182:3306,192.168.50.183:3306"
loose-group_replication_single_primary_mode=TRUE
然后拷贝 /etc/my.cnf到另外2台机器
rsync -e "ssh -p22" -avpgolr /etc/my.cnf root@192.168.50.182:/etc/
rsync -e "ssh -p22" -avpgolr /etc/my.cnf root@192.168.50.183:/etc/
确保各自 server_id 和 address
host1 server_id = 4000000161
loose-group_replication_local_address= "192.168.50.181:3306"
host2 server_id = 4000000162
loose-group_replication_local_address= "192.168.50.182:3306"
host3 server_id = 4000000163
loose-group_replication_local_address= "192.168.50.183:3306"
7. 3台mysql server 启动组复制
start group_replication
8. 检查实例配置, 使用 mysqlsh
dba.checkInstanceConfiguration('root@db-host1:3306')
dba.checkInstanceConfiguration('root@db-host2:3306')
dba.checkInstanceConfiguration('root@db-host3:3306')

8. 配置实例
dba.configureInstance('root@db-host1:3306',{'restart': true})
dba.configureInstance('root@db-host2:3306',{'restart': true})
dba.configureInstance('root@db-host3:3306',{'restart': true})

9. 创建添加实例
var cluster = dba.createCluster('mycluster');
var cluster=dba.getCluster('mycluster')
cluster.addInstance('root@db-host2:3306');
cluster.addInstance('root@db-host3:3306');
10. 登录主服务器 ,查看,配置成功
mysql> select * from performance_schema.replication_group_members;

注意:由于8.0 中的一些变化和5.X配置有所配置不同,按照以前的配置容易出错,要善于对应分析日志进行排错
推荐参考资料:
https://blog.csdn.net/wzy0623/article/details/100779450
https://www.jianshu.com/p/6e2918845ec8
https://lefred.be/content/mysql-8-0-innodb-cluster-the-quick-hands-on-manual/
https://cloud.tencent.com/developer/article/1445710
MySQL 8.0.18 InnoDB Cluster 主从(MGR)完整安装配置的更多相关文章
- mysql 8.0.18 mgr 搭建及其切换
mysql 8.0.18 mgr 搭建及其切换 一.系统安装包 yum -y install make gcc-c++ cmake bison-devel ncurses-devel readline ...
- mysql 8.0.18 手工安装记录
mysql 8.0.18 手工安装记录 为了日常方便,特记录如下. 一.安装系统依赖包 #.系统依赖包安装 yum -y install make gcc-c++ cmake bison-devel ...
- win10 安装mysql 8.0.18 解决Navicat初次连接报错
win10 安装mysql 8.0.18 解决Navicat初次连接报错 win10 安装mysql 8.0.18-winx64 一,先去官网下载mysql 安装包 https://dev.mysql ...
- MySQL 8.0.18安装教程(windows 64位)
目录 1-先去官网下载点击的MySQL的下载 2-配置初始化的my.ini文件的文件3-初始化MySQL4-安装MySQL服务 + 启动MySQL 服务5-连接MySQL + 修改密码 * 第一项 ...
- mysql 8.0.18 hash join测试(内外网首文)
CREATE TABLE COLUMNS_hj as select * from information_schema.`COLUMNS`; INSERT INTO COLUMNS_hj SELECT ...
- MySQL 8.0.18 在 Windows Server 2019 上的安装(ZIP)公开
AskScuti MySQL : Windows Server 2019 安装 MySQL 8.0 温馨提示:为了展现我最“魅力”的一面,请用谷歌浏览器撩我. 一切就绪,点我开撩
- MySQL 8.0.18 在 Windows Server 2019 上的安装(MSI)公开
AskScuti MySQL : Windows Server 2019 安装 MySQL 8.0 温馨提示:为了展现我最“魅力”的一面,请用谷歌浏览器撩我.那个 IE 啊,我很无奈. 一切就绪,点我 ...
- Ubuntu 16.04 + CUDA 8.0 + cuDNN v5.1 + TensorFlow(GPU support)安装配置详解
随着图像识别和深度学习领域的迅猛发展,GPU时代即将来临.由于GPU处理深度学习算法的高效性,使得配置一台搭载有GPU的服务器变得尤为必要. 本文主要介绍在Ubuntu 16.04环境下如何配置Ten ...
- mysql 8.0.18 小白安装教程
1. 下载 官网下载:https://dev.mysql.com/downloads/mysql/ 嫌官网网速慢可以加q群,在群文件里下载: 1.下载第一个download 2.解压在自己建的目录(各 ...
随机推荐
- 整理:C#中Expression表达式的妙用
原文:整理:C#中Expression表达式的妙用 一.目的:通过示例了解C#中Expression表达式的作用,通过表达式和反射可以写出很优雅的代码和架构,也可以完成一些看似不可能完成的任务 二.示 ...
- 汉诺(hanio)塔问题
规则:大盘子不能压在小盘子上.要求:将A柱子上所有盘(每个盘大小不同)放到C柱子上,使用B柱子作辅助. 比如柱子A上有n个盘,执行以下步骤: 1. 把n-1个盘从源柱移动到临时柱上: 2. 把源柱上剩 ...
- 使用SqlConnectionStringBuilder构造数据库连接字符串
在实际开发过程中,很多时候会拷贝一个现有的数据库连接字符串,修改对应的数据库名.用户名.密码等配置成新的数据库连接字符串.但是有时候我们需要增加一些额外的配置,比如超时时间,最大连接池等,此时我们可以 ...
- Spring4参考手册中文版
Spring4参考手册中文版 前言 https://github.com/b2gats/stone-docs/blob/master/spring-4-beans.md Part III. 核心技术 ...
- NVIDIA-docker Cheatsheet
TensorFlow Docker requirements Install Docker on your local host machine. For GPU support on Linux, ...
- 第一章 Maven 安装配置
Maven基于(POM)项目对象模型,通过一小段描述信息来管理项目的构建.文档.和报告的项目管理软件,类似于php 的管理构建工具composer. 有关详细的Maven学习,可以参考学习https: ...
- 2019 美团java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.美团等公司offer,岗位是Java后端开发,因为发展原因最终选择去了美团,入职一年时间了,也成为了面试官,之 ...
- vue中进行窗口变化的监听
今天vue项目中用到的元素的宽度依赖与窗口的宽度,所以在进行宽度设置的时候涉及到窗口的变化,因为元素的宽度要随着窗口变化 分成几个步骤来实现这一过程 1.首先元素的宽度依赖与窗口的宽度,就需要有接受窗 ...
- Django 连接 MySQL 数据库及常见报错解决
目录 Django 连接 MySQL数据库及常见报错解决 终端或者数据库管理工具连接 MySQL ,并新建项目所需数据库 安装访问 MySQL 的 Python 模块 Django 相关配置 可能会遇 ...
- HTTP 强制缓存和协商缓存
Web 缓存能够减少延迟与网络阻塞,进而减少显示某个资源所用的时间.借助 HTTP 缓存,Web 站点变得更具有响应性. 缓存优点: 减少不必要的数据传输,节省带宽 减少服务器负担,提升网站性能 加快 ...