MySQL:读写分离-amoeba(7)

环境介绍

mysql主服务器 192.168.254.1
mysql从服务器(1)192.168.254.2
mysql从服务器(2)192.168.254.3
amoeba代理服务器 192.168.254.4
测试服务器 192.168.254.5

此技术搭配主从复制,我的主服务器和从服务器都进行了主从复制


主从复制

MySQL:主从复制-基础复制(6)-CSDN博客https://blog.csdn.net/w14768855/article/details/133690486?spm=1001.2014.3001.5501


读写分离

在主服务器上的设置

到主服务器192.168.254.1上的mysql进行操作配置

复制代码
grant all on *.* to zhangsan@'192.168.254.%' identified by '111222333';

对张三用户设置权限和密码

复制代码
show grants for zhangsan@'192.168.254.%';

现在张三这个用户同时也同步至从服务器了,等会在代理服务器上就使用张三去登录mysql


在代理服务器上的设置

Java Archive 下载 - Java SE 6 (oracle.com)https://www.oracle.com/java/technologies/javase-java-archive-javase6-downloads.html#jdk-6u21-oth-JPR

下载 jdk-6u14-linux-x64.bin的jdk包和

Download amoeba-mysql-binary-2.2.0.tar.gz (amoeba)Amoeba is a proxy that sits between your client and DB server(s) that can monitor, analyze or transform their communication. written in java. 1.load...https://sourceforge.net/projects/amoeba/files/Amoeba%20for%20mysql/2.2.x/amoeba-mysql-binary-2.2.0.tar.gz下载amoeba的tar.gz包

可以使用网络下载工具或者在Linux里使用

复制代码
wget https://sourceforge.net/projects/amoeba/files/Amoeba%20for%20mysql/2.2.x/amoeba-mysql-binary-2.2.0.tar.gz

把这俩包放入Linux

先安装java

复制代码
yum -y remove java

这会删除你的java,如果你有java环境请慎重考虑

复制代码
chmod +x jdk-6u14-linux-x64.bin 

./jdk-6u14-linux-x64.bin

一直回车或者按空格

到这里输入yes,然后回车

回车一下

这就安装好了

复制代码
mv jdk1.6.0_14/ /usr/local/jdk1.6

vi  /etc/profile

最末尾追加

export JAVA_HOME=/usr/local/jdk1.6

export CLASSPATH=$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

source /etc/profile

java安装完成

安装amoeba

复制代码
mkdir /usr/local/amoeba

tar zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/

chmod -R 755 /usr/local/amoeba/

/usr/local/amoeba/bin/amoeba

如果弹了amoeba start|stop 那就可以了,先不用开启,去配置文件


/usr/local/amoeba/conf/amoeba.xml 配置文件修改方法

复制代码
vim /usr/local/amoeba/conf/amoeba.xml

修改里面的内容

 30                                         <property name="user">amoeba</property>
 31 
 32                                         <property name="password">123456</property>
115                 <property name="defaultPool">master</property>
116 
117                 <property name="writePool">master</property>   ##注意删除<!--  -->的注释
118                 <property name="readPool">slaves</property>

这个是30和31行的,这里设置​的账户密码等会外界访问连接的时候就用这个

​​​​​

把下面的注释去掉


/usr/local/amoeba/conf/dbServers.xml 文件修改方法

复制代码
vim /usr/local/amoeba/conf/dbServers.xml

修改

25                         <!-- mysql user -->
 26                         <property name="user">ly</property>   ##该用户必须是上一步授权的用户
 27                         
 28                         <!--  mysql password -->   ##修改
 29                         <property name="password">123123</property>  ##删除下一行的"-->"
 44         <dbServer name="master"  parent="abstractServer">   ##修改为master
 45                 <factoryConfig>
 46                         <!-- mysql ip -->
 47                         <property name="ipAddress">192.168.10.1</property>  ##指定正确的master的ip
 51         <dbServer name="slave1"  parent="abstractServer">  ##修改为slave1
 52                 <factoryConfig>
 53                         <!-- mysql ip -->
 54                         <property name="ipAddress">192.168.10.2</property>  ##指定slave1的ip地址
 55                 </factoryConfig>
 56         </dbServer>
 59         <dbServer name="slaves" virtual="true">  ##修改为slaves
 65                         <property name="poolNames">slave1</property>  ##修改集群的成员名称用逗号隔开

这里写入刚刚主服务器给权限的那个用户和他的密码 ,注意把密码那里的注释去掉

第二个slave2是我自己加上的因为我有两个从服务器,如果我有更多的从服务器那么我还可以继续复制更多的,同时在最下面写好列表就行

复制代码
/usr/local/amoeba/bin/amoeba start &

netstat -utpln |grep 8066

开启成功


测试

复制代码
yum -y install mysql

mysql -uamoeba -p123123 -h 192.168.254.4 -P 8066

我们的代理的服务器并没有安装mysql,我连接的192.168.254.4代理服务器会把我读发送至从服务器,写发送至主服务器,这样的读写分离就成功了

相关推荐
计算机毕设匠心工作室13 小时前
【python大数据毕设实战】全面皮肤病症状数据可视化分析系统、Hadoop、计算机毕业设计、包括数据爬取、数据分析、数据可视化、机器学习、实战教学
后端·python·mysql
前端之虎陈随易13 小时前
MoonBit内置数据结构详解
数据结构·数据库·redis
qq_124987075313 小时前
基于SpringBoot+vue的小黄蜂外卖平台(源码+论文+部署+安装)
java·开发语言·vue.js·spring boot·后端·mysql·毕业设计
小二·13 小时前
Spring框架入门:TX 声明式事务详解
java·数据库·spring
万邦科技Lafite13 小时前
一键获取淘宝店铺所有商品信息,实时监控商品数据
开发语言·数据库·python·api·开放api·电商开放平台·淘宝开放平台
SUPER526613 小时前
运维hbase服务重启,导致应用查询异常 hbase:meta
运维·数据库·hbase
烤麻辣烫13 小时前
黑马程序员苍穹外卖后端概览
xml·java·数据库·spring·intellij-idea
点灯小铭14 小时前
基于单片机的智能药物盒设计与实现
数据库·单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
非鱼feiyu14 小时前
自关联数据表查询优化实践:以 Django + 递归 CTE 构建树结构为例
数据库·后端·django
寻找华年的锦瑟14 小时前
Qt-QStackedWidget
java·数据库·qt