mycat mysql程序_MyCat + MySQL 主从部署流程(上)

背景

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

环境准备

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

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

首先,ipconfig 查看本机无限局域网信息,记住默认网关:

[图片上传失败...(image-495317-1598141304980)]

其次,启动 VirtualBox 实例,编辑网卡文件 ifcfg-xxx ,设置动态 IP 并将网关配置与宿主机一致:

在这里插入图片描述

第三,/etc/init.d/network restart 重启网卡服务,ifconfig 命令查看节点的 IP,然后再调整 SecureCRT 的连接配置,指向新的 IP。

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

作用

主机名称

IP

MyCat 宿主机

MyCat

172.20.10.4

MySQL 主服务器

hostM1

172.20.10.3

MySQL 从服务器

hostS1

172.20.10.5

介质准备

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

文件名称

作用

下载地址

jdk-8u60-linux-x64.rpm

JDK 安装包

mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

MySQL 安装包

Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz

MyCat 安装包

编写安装脚本

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

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

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

脚本名称

作用

特点

jdk_install.sh

安装 JDK

环境变量配置

master_install.sh

安装 MySQL 主节点

my.cnf 添加主节点配置

slave_install.sh

安装 MySQL 从节点

my.cnf 添加从节点配置

master_grant.sh

Master 授权

授权复制权限给从节点

slave_grant.sh

Slave 配置

设置主节点信息

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<

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

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

部署流程

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

安装 JDK:执行 jdk_install.sh;

安装 MySQL 主节点:执行 master_install.sh;

为主节点创建复制帐号并授权复制权限:执行 master_grant.sh;

安装 MySQL 从节点:执行 slave_install.sh;

为从节点设置 Master 信息:执行 slave_grant.sh;

安装 MyCat:执行 mycat_install.sh;

根据主从节点信息,配置 MyCat 的 schema.xml 和 server.xml;

启动 MyCat。

后记

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

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

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

你可能感兴趣的:(mycat,mysql程序)