MyCat + MySQL 主从部署流程(上)

背景

本周研究了一下数据库中间件 MyCat ,并验证了 MyCat 单机 + MySQL 主从复制 的部署方案,本文将整理 MyCat 单机的 Schema 的几种部署方案,并以 MyCat 单机 + MySQL 主从复制的部署流程为主,详细介绍这一方案的部署过程。

环境准备

使用 MyCat 单机 + MySQL 主从,最少需要两台机器,本文使用一主一从,MyCat 单独部署,总共三个虚拟机节点。

由于连接的是无线网络,切换工作地时,会出现网络问题,先调整 VirtualBox 的虚拟机节点的 IP,保证宿主机、各节点间网络通畅。

首先,ipconfig 查看本机无限局域网信息,记住默认网关:
在这里插入图片描述
其次,启动 VirtualBox 实例,编辑网卡文件 ifcfg-xxx ,设置动态 IP 并将网关配置与宿主机一致:
在这里插入图片描述
第三,/etc/init.d/network restart 重启网卡服务,ifconfig 命令查看节点的 IP,然后再调整 SecureCRT 的连接配置,指向新的 IP。

三个虚拟机实例对应的信息如下:

作用主机名称IP
MyCat 宿主机MyCat172.20.10.4
MySQL 主服务器hostM1172.20.10.3
MySQL 从服务器hostS1172.20.10.5

介质准备

选择 MyCat 的稳定版本 1.6.7 和 MySQL 社区版最新版本 5.7.31 ,JDK1.8,需要的安装介质:

文件名称作用下载地址
jdk-8u60-linux-x64.rpmJDK 安装包JDK1.8
mysql-5.7.31-linux-glibc2.12-x86_64.tar.gzMySQL 安装包MySQL社区版
Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gzMyCat 安装包MyCat1.6.7

编写安装脚本

先说说为什么要编写安装脚本?MyCat 和 MySQL 都是免安装的,解压后做一些常规的用户创建、目录授权、文件配置就可以了。虽然这些操作都不复杂,但每次部署时,手动敲命令,也很劳心劳力呀,能用程序解决的问题,绝不用亲自动手,这是程序员的一贯思维,所以编写脚本是必不可少的。

更重要的是,生产部署的时候,有自动化部署脚本,效率会高很多。

部署 MyCat + MySQL 主从环境,除了 JDK 安装外【这个以前写过】,笔者写了五个脚本:

脚本名称作用特点
jdk_install.sh安装 JDK环境变量配置
master_install.sh安装 MySQL 主节点my.cnf 添加主节点配置
slave_install.sh安装 MySQL 从节点my.cnf 添加从节点配置
master_grant.shMaster 授权授权复制权限给从节点
slave_grant.shSlave 配置设置主节点信息
mycat_install.sh安装 MyCat创建 MyCat 用户和组

master_grant.sh 为例,它主要是创建一个临时 SQL 脚本,然后以 MySQL 主节点的帐号执行该 SQL 操作集,脚本的参数是 MySQL 的主节点认证密码,内容为:

#!/bin/sh
######################################################################
###### put mycat directory to /home/ 
###### sh grant_master.sh rootPwd
######################################################################
echo 'Create user and grant master.'

#master server password of ip
mysqlrootpwd=$1
if [ "$mysqlrootpwd" = "" ]; then
   echo "Error: You must tell me the password of master root."
   exit 1
fi
echo "MySQL master server root password is:$mysqlrootpwd"

#create grant sql script
cat > /tmp/mysql_sec_script<<EOF
create user 'replaccount'@'%' identified by 'ReplPassword'; 
grant replication slave on *.* to 'replaccount'@'%';
show grants for 'replaccount';
show master status \G;
EOF

#print script content
cat /tmp/mysql_sec_script
echo '\n to execute grant sql.'

#use mysql command to execute grant sql
/data/mysql/bin/mysql -u root -p$mysqlrootpwd -h localhost < /tmp/mysql_sec_script

#remove temp sql script
rm -f /tmp/mysql_sec_script

脚本地址,感兴趣的小伙伴们可以点击解锁。

部署流程

脚本编写好了之后,部署过程就比较简单了,操作步骤为:

  1. 安装 JDK:执行 jdk_install.sh;
  2. 安装 MySQL 主节点:执行 master_install.sh;
  3. 为主节点创建复制帐号并授权复制权限:执行 master_grant.sh;
  4. 安装 MySQL 从节点:执行 slave_install.sh;
  5. 为从节点设置 Master 信息:执行 slave_grant.sh;
  6. 安装 MyCat:执行 mycat_install.sh;
  7. 根据主从节点信息,配置 MyCat 的 schema.xml 和 server.xml;
  8. 启动 MyCat。

后记

笔者用的是一台 8G 内存的 Dell 电脑,开启了三个虚拟机节点,没有宽带的情况下,使用手机热点搭建环境的写成此文的,过程还挺很流畅的。

4G 信号,加上热点,感觉都不用装宽带了。亲自体验了一把手机热点的网速后,终于相信了网上调侃程序员地铁站或者路边蹲着改 bug 的报道不是段子,而是真实职场不易了……

囿于篇幅太长,不利于阅读,本文先搭框架,下一篇接着介绍具体的部署过程。

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值