玩转Linux系统之轻松搭建Mysql读写分离集群

Posted Friends of the wind

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了玩转Linux系统之轻松搭建Mysql读写分离集群相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

案例

温馨提示:mysql读写分离是以主从复制为前提的,关于此请参考上期教程搭建Mysql主从复制集群
实验环境,关闭防火墙,setenfoce设置为宽容模式,三台服务器搭建好主从复制集群
在这里插入图片描述

推荐步骤

温馨提示:amoeba建议java环境是1.5或1.6,centos7默认是1.8,演示降到1.6版本
例如:
1、amoeba服务器安装java环境

将下载的jdk包上传到/usr/local,进入目录
[root@centos1 ~]# cd /usr/local/
设置执行权限
[root@centos1 ~]# chmod +x /usr/local/jdk-6u14-linux-x64.bin 
执行安装(阅读条款,一直确定即可)
[root@centos1 local]# ./jdk-6u14-linux-x64.bin  //根据提示按回车和yes即可

执行./jdk-6u14-linux-x64.bin命令如下图显示:
在这里插入图片描述
在这里插入图片描述
翻译:您同意上述许可条款吗?,输入:yes
在这里插入图片描述
按Enter继续,最后出现done表示好了。

优化
说明:CLASSPATH指定java类搜索路径(小程序),要使用已经编写好java的类,前提当然是能够找到它们,JVM就是通过CLASSPATH来寻找类的。

[root@centos1 local]# vim  /etc/profile
export  JAVA_HOME=/usr/local/jdk1.6  //指向jdk的安装路径
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
export AMOEBA_HOME=/usr/local/amoeba/
export PATH=$PATH:$AMOEBA_HOME/bin
[root@centos1 local]# mv jdk1.6.0_14/  /usr/local/jdk1.6
[root@centos1 local]# source /etc/profile

完成,查看版本信息
在这里插入图片描述
2、 安装并配置amoeba软件

创建amoeba专用目录
[root@centos1 local]# mkdir /usr/local/amoeba
解压到此目录
[root@centos1 local]# tar zxf  /mnt/amoeba-mysql-binary-2.2.0.tar.gz  -C  /usr/local/amoeba
为目录设置权限
[root@centos1 local]# chmod -R 755 /usr/local/amoeba/
验证amoeba有没安装成功
[root@centos1 local]# amoeba

验证amoeba有没安装成功,看到如图提示代表amoeba安装成功:
在这里插入图片描述
3、 配置amoeba读写分离,两个slave读负载均衡

①分别在master、slave1和slave2中开放权限给amoeba访问

mysql> grant all on . to ‘test’@‘192.168.2.%’ identified by ‘123.com’;

②amoeba代理服务器配置

(1)编辑amoeba.xml配置文件(注意:不同主机,配置文件行数可能不一样,更改划线部分)

vim /usr/local/amoeba/conf/amoeba.xml
在这里插入图片描述
在这里插入图片描述
(2)编辑dbServer.xml配置文件

vim /usr/local/amoeba/conf/dbServers.xml
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)启动amoeba软件(加&放在后台运行)
在这里插入图片描述
查看其监听端口
在这里插入图片描述
4、 测试

①在Linux系统client主机
安装mysql客户端程序 yum -y install mariadb
通过代理访问 mysql mysql -u amoeba -p123456 -h 192.168.2.1 -P8066 (-P为大写)

②在master上创建一个表,同步到各个从服务器上,然后关掉各从服务器的slave功能,再插入区别语句
在这里插入图片描述

③分别在两台从服务器上
在这里插入图片描述
④然后在主服务器上插入数据
在这里插入图片描述
⑤从服务器同步了表,手动插入其他内容
slave1
在这里插入图片描述
slave2
在这里插入图片描述
⑥测试读操作
在client主机上第一次查询的结果如下:
在这里插入图片描述

第二次查询结果如下:
在这里插入图片描述

第三次查询的结果如下:
在这里插入图片描述

在master测试写操作
在这里插入图片描述
但是在客户机上查询不到
最终只能在主服务器上才能看到这条语句内容,说明写操作在master服务器上

如有疑问,可以参看视频玩转Linux系统之轻松搭建Mysql读写分离集群视频

以上是关于玩转Linux系统之轻松搭建Mysql读写分离集群的主要内容,如果未能解决你的问题,请参考以下文章

玩转Linux系统之轻松搭建Redis集群

玩转Linux系统之轻松搭建Nginx服务

MyCat学习第二天之性能监控,读写分离,集群搭建

玩转Linux系统之shell脚本轻松搭建LNMP平台架构

关于Linux下MySQL主备集群负载均衡之读写分离(MaxScale)的一些笔记

mysql+myca搭建稳定高可用集群,负载均衡,主备复制,读写分离