首页 存档 技术 查看内容

MySQL InnoDB Cluster

2018-3-30 13:00 |来自: 互联网 306 0

摘要: Mysql高可用环境的搭建比较麻烦,而且之前的那种mysql cluster使用的是内存式存储引擎,一旦断电就会灰飞烟灭,数据丢失。 自从mysql被oracle收购后,新版本发布频繁,推出了很多好用的功能和插件,其中就包括简化高 ...

Mysql高可用环境的搭建比较麻烦,而且之前的那种mysql cluster使用的是内存式存储引擎,一旦断电就会灰飞烟灭,数据丢失。

自从mysql被oracle收购后,新版本发布频繁,推出了很多好用的功能和插件,其中就包括简化高可用环境的搭建难度。


整个过程包括:

  1. 基础环境的安装(mysql 5.7.15、mysql-shell、mysql-router)

  2. 部署多个实例

  3. 创建集群

  4. 部署 Mysql Router

  5. 故障测试

InnoDB Cluster 的搭建可以分为两种情况:



下面总结了多节点 InnoDB Cluster 搭建的详细过程,供有需要的朋友参考

1. 目标


准备4台服务器,node01、node02、node03 作为 cluster 节点,node04 作为管理节点,负责创建 cluster,并作为 cluster 的路由

最后,会搭建出一个高可用集群,通过 router 连接到这个cluster,MySQL客户端通过 router 与 cluster 进行沟通

2. 搭建思路

(1)安装基础环境

node 01、02、03上安装好mysqlmysql-shell

node04上安装mysql-shellmysql-router

(2)创建集群

在 node01 上创建集群,先配置好其 mysql 并启动,然后通过 node01 上的 shell 连接 node01 的 mysql,执行配置命令

dba.configureLocalInstance();

使其具备创建集群的条件

最后通过 node04 的 shell 连接 node01 的 mysql,执行创建集群的命令

dba.createCluster()

(3)向集群中添加节点

集群创建起来后,接下来就是向其中添加节点

配置 node02、node03 的 mysql 并启动,然后使用各自的 mysql-shell 对其进行配置

最后通过 node04 的 mysql-shell 执行添加实例的命令dba.addInstance()把 node02,node03 添加到集群中

(4)使用 router 连接集群

集群搭建完成后,把 node04 的 router 启动起来,并连接到集群

client 就可以连接到 router,通过其操作集群了

3. 具体搭建过程

(1)环境安装

在各台服务器中配置好 hosts,如:

192.168.31.13 node03 
192.168.31.228 node02 
192.168.31.36 node01 

需要准备的软件:

  1. mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

  2. mysql-shell-1.0.9-linux-glibc2.12-x86-64bit.tar.gz

  3. mysql-router-2.1.3-linux-glibc2.12-x86-64bit.tar.gz

根据上面的结构图,在各个服务器中安装好所需的软件

安装方法:

1. MySQL

# 解压
tar zxf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql-5.7
cd /usr/local

# 初始化数据库实例
mkdir data
mysql-5.7/bin/mysqld --initialize-insecure --basedir=$PWD/mysql-5.7 --datadir=$PWD/data

# 创建mysql用户
groupadd mysql5.7
useradd -g mysql5.7 mysql5.7
chown -R mysql5.7:mysql5.7 /usr/local/mysql-5.7
chown -R mysql5.7:mysql5.7 /usr/local/data

2. shell

# 直接解压即可
tar zxf mysql-shell-1.0.9-linux-glibc2.12-x86-64bit.tar.gz mysql-shell

3. router

# 直接解压即可
tar zxf mysql-router-2.1.3-linux-glibc2.12-x86-64bit.tar.gz mysql-router

(2)创建集群

  • 配置 node01 的 mysql 并启动

切换到mysql用户

su mysql5.7

编辑配置文件vi /user/local/data/my.cnf,内容:

[mysqld]

# server configuration
datadir=/usr/local/data
basedir=/usr/local/mysql-5.7/

port=3306
socket=/usr/local/data/mysql.sock

server_id=1
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

启动

nohup /usr/local/mysql-5.7/bin/mysqld --defaults-file=data/my.cnf
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部