码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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博客icon-default.png?t=N7T8https://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)icon-default.png?t=N7T8https://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…icon-default.png?t=N7T8https://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
    1. vi /etc/profile
    2. 最末尾追加
    3. export JAVA_HOME=/usr/local/jdk1.6
    4. export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    5. export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin/:$PATH:$HOME/bin
    6. export AMOEBA_HOME=/usr/local/amoeba
    7. 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   配置文件修改方法

    1. vim /usr/local/amoeba/conf/amoeba.xml
    2. 修改里面的内容
    3. 30 <property name="user">amoeba</property>
    4. 31
    5. 32 <property name="password">123456</property>
    6. 115 <property name="defaultPool">master</property>
    7. 116
    8. 117 <property name="writePool">master</property> ##注意删除<!-- -->的注释
    9. 118 <property name="readPool">slaves</property>

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

    ​​​​​

    把下面的注释去掉 


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

    1. vim /usr/local/amoeba/conf/dbServers.xml
    2. 修改
    3. 25 <!-- mysql user -->
    4. 26 <property name="user">ly</property> ##该用户必须是上一步授权的用户
    5. 27
    6. 28 <!-- mysql password --> ##修改
    7. 29 <property name="password">123123</property> ##删除下一行的“-->”
    8. 44 <dbServer name="master" parent="abstractServer"> ##修改为master
    9. 45 <factoryConfig>
    10. 46 <!-- mysql ip -->
    11. 47 <property name="ipAddress">192.168.10.1</property> ##指定正确的master的ip
    12. 51 <dbServer name="slave1" parent="abstractServer"> ##修改为slave1
    13. 52 <factoryConfig>
    14. 53 <!-- mysql ip -->
    15. 54 <property name="ipAddress">192.168.10.2</property> ##指定slave1的ip地址
    16. 55 </factoryConfig>
    17. 56 </dbServer>
    18. 59 <dbServer name="slaves" virtual="true"> ##修改为slaves
    19. 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代理服务器会把我读发送至从服务器,写发送至主服务器,这样的读写分离就成功了 

  • 相关阅读:
    【Redis入门笔记 05】Jedis 简介 & SpringBoot 集成
    阿里内部热捧“Spring全线笔记”,不止是全家桶,太完整了
    PYTHON 自动化办公:更改图片后缀
    0020__如何获取windows系统的串口列表
    【OceanBase诊断调优】—— obdiag 工具助力OceanBase数据库诊断调优(DBA 从入门到实践第八期)
    XiaodiSec day007 Learn Note 小迪安全学习笔记
    使用python快速搭建接口自动化测试脚本实战总结
    java计算机毕业设计社交的健身网课平台服务器端源码+系统+数据库+lw文档+mybatis+运行部署
    定时任务Apscheduler实践案例
    显示DataFrame中每行(或列)中,每个位置以前出现过的最小值:cummin()函数
  • 原文地址:https://blog.csdn.net/w14768855/article/details/133711409
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号