mysql读写分离_MySQL基于amoeba读写分离实验

===========================================
主从复制只是一个同步数据的方式
读写分离:只在主的上面写,只在从的上面读
读写分离方案:【1】基于程序代码内部 (生产环境中应用最广泛,性能最好,需要开发人员来实现)
【2】基于中间代理层的实现
amoeda 是阿里巴巴使用的产品
===========================================
实验要求
5台机器
web服务器 1台 :192.168.200.66
amoeba 服务器一台:192.168.200.67
数据库3台
数据库A :192.168.200.68 (mysql主服务器)
数据库B :192.168.200.69 (mysql从服务器)
数据库C :192.168.200.70 (mysql从服务器)
===========================================
amoeba :67
chmod +x jdk-6u31-linux-x64.bin
./jdk-6u31-linux-x64.bin
mv jdk1.6.0_31/ /usr/local/jdk1.6
安装amoeba 不仅需要amoeba软件包还需要有jdk-6u31-linux-x64.bin
/amoeba 软件是基于jdk1.5版本开始的。
ls
mv jdk1.6.0_14/ /usr/local/jdk1.6
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.6
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH=$PATH:$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$HOME/bin

export AMOEBA_HOME=/usr/local/amoeda
export PATH=$PATH:$AMOEBA_HOME/bin
保存退出
source /etc/profile
java -version
rm -rf /usr/bin/java
source /etc/profile
java -version
mkdir /usr/local/amoeba
tar xf amoeba........tat.gz -C /usr/local/amoeba
chmod -R 755 /usr/local/amoeba
---------------------------------------------
3台数据库服务器都要做授权,让amoeba可以进行访问
grant all on *.* to 'test'@'192.168.200.%' identified by '123.com'; //用户名是test 密码是123.com
flush privileges;
----------------------------------------------
修改amoeba的配置文件
主机amoeba 67 操作
cd /usr/local/amoeba/
ls
cd conf
ls
cp amoeba.xml{,.bak}
vim amoeba.xml //修改30行左右的文件内容amoeba123456 //指定客户端连接时的用户名和密码
///115行左右master
去掉以下两行的注释master //写交合主 slaves //读交给从slaves是从的组,里面包含slave1和slave2
保存退出
cp dbServers.xml{,.bak}
vim dbServers.xml //找到以下内容进行修改test
/去掉注释的mysql password 改为以下内容123.com
找到dbServer192.168.200.68

192.168.200.69192.168.200.70
声明slaves组 找到以下内容1slave1,slave2
保存退出
cd
nohup /usr/local/amoeba/bin/amoeba start & ///不依赖于任何终端,放到后台执行
netstat -lnpt //查看端口是否开启
注意:cat nohup.out
ps aux |grep amoeba //查看端口8066
---------------------------------------------------------------------------
web 服务器66
yum -y install mariadb
mysql -u amoeba -p123456 -h 192.168.200.67 -p 8066 //客户机做连接
=====测试amoeba是否能进行读写分离=========
【1】在数据库主服务器上创建
create database db_test;
use db_test;
create table student(id int(10),name varchar(10),address varchar(20));
show databases;
【2】在两台数据库从服务器上进行检测,看是否同步
show databases;
【3】先把两台数据库从服务器的复制功能停止
stop slave;
【4】在主数据库中插入数据
insert into student values('1','crushlinux','this_is_master');
【5】在slave1 slave2中分别插入以下数据
-----slave1
use db_test;
insert into student values('2','crushlinux','this_is_slave1');
-----slave2
use db_test;
insert into student values('3','crushlinux','this_is_slave2');
【6】web客户端查询测试
use db_test;
select * from student;
///测试结果是能够看到里面内容是轮询的。 而且只能看到从数据库上面的内容。
【7】web客户端插入数据
use db_test;
insert into student values('4','crushlinux','this_is_web');
【8】web客户端检查
use db_test;
select * from student;
【9】主数据库中查看是否有4的数据
use db_test;
select * from student;
【10】开启两台从数据库的主从复制功能
start slave;
show slave status; //查看是否开启
【11】在web客户端查看
use db_test;
select * from student; //会看到124 或者134 的数据
在插入一条数据
insert into student values('5','crushlinux','this_is_web');
///结果是1245或者是1345 总之,从服务器的数据不会同时出现。
===========完成!!!!!!!===========

0bd3af19e5a106e5ca23fdd86dd4493c.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454115.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django models模型

Django models模型 一. 所谓Django models模型,是指的对数据库的抽象模型,models在英文中的意思是模型,模板的意思,在这里的意思是通过models,将数据库的借口抽象成python自己的一个类。然后在python Django框架其他代…

Python内存管理以及垃圾回收机制

垃圾回收:用通俗点的语言解释就是内存管理和垃圾回收的过程. 大管家refchain 在Python的C源码中有一个名为refchain的环状双向链表,这个链表就比较厉害了,因为Python程序中一旦创建对象都会把这个对象添加到refchain这个链表中。也就是说他…

【Ext.Net学习笔记】01:在ASP.NET WebForm中使用Ext.Net

Ext.NET是基于跨浏览器的ExtJS库和.NET Framework的一套支持ASP.NET AJAX的开源Web控件,包含有丰富的Ajax运用,其前身是Coolite。 下载地址:http://www.ext.net/download/ 示例地址:http://examples.ext.net/ 1.首先下载Ext.Net,地…

面试之操作系统

基本特征 1. 并发 并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。操作系统通过引入进程和线程,使得程序能够并发运行。 2. 共享 共享是指…

mysql新增列并同时增加数据_图解MySQL | [原理解析] MySQL 为表添加列 是怎么quot;立刻quot;完成的...

在上一期图解 图解MySQL | MySQL DDL为什么成本高?中,我们介绍了:传统情况下,为表添加列需要对表进行重建腾讯团队为 MySQL 引入了 Instant Add Column 的方案(以下称为 "立刻加列" 功能)可以快速完成 为表添加列 的任务…

GCC for Win32开发环境介绍

GCC for Win32开发环境介绍(1) 第一章 在视窗操作系统下的GCC 第一节GCC家族概览 GCC是一个原本用于Unix-like系统下编程的编译器。不过,现在GCC也有了许多Win32下的移植版本。所以,也许对于许多Windows开发者来说,GCC还是一个比较陌生的东西…

reg型变量怎么赋值_UiPath变量介绍和使用

1 变量变量主要用于存储数据,它在RPA中扮演重要的数据传递角色,是RPA编程不可或缺的一部分。它包括变量名称和变量的值,变量的值支持多种数据类型,包括从通用值,文本,数字,数据表,时…

深度学习之概述

深度学习的应用场景 1、图像应用: 1.1 大规模(大数据量)图片识别(聚类/分类),如人脸识别,车牌识别,OCR等。人脸识别算法:① faceID ② faceNet 1.2 以图搜图,图像分割 1.3 目标检测&#xff0…

如何根据对象获取到对应的表名_Excel VBA 常用对象二

下面继续讲解上一节中未讲完的内容:Excel VBA编程中常常使用的那些对象到底是什么,如何在代码中表示它们。Worksheet对象Worksheet对象代表工作表。工作簿中的每个工作表都是一个Worksheet对象,所有Worksheet对象构成了Worksheets集合。我们使…

深度学习之 BP 算法

神经网络的一种求解W的算法,分为信号“正向传播(FP)”求损失,“反向传播(BP)”回传误差;根据误差值修改每层的权重,继续迭代。 BP算法也叫做δ算法。以三层的感知器为例(假定现在隐层和输出层均存在相同类型的激活函数…

深度学习之 RBF神经网络

RBF神经网络通常只有三层,即输入层、中间层和输出层。其中中间层主要计算输入x和样本矢量c(记忆样本)之间的欧式距离的Radial Basis Function (RBF)的值,输出层对其做一个线性的组合。 径向基函数: RBF神经网络的训练…

redis 队列_Redis与Rabbitmq消息队列的区别

将redis发布订阅模式用做消息队列和rabbitmq的区别:可靠性 redis :没有相应的机制保证消息的可靠消费,如果发布者发布一条消息,而没有对应的订阅者的话,这条消息将丢失,不会存在内存中;rabbit…

EasyUI中那些不容易被发现的坑——EasyUI重复请求2次的问题

问题控件:datagrid、combobox、所有能设置url属性的控件 问题版本:1.4.4、1.4.5(之前的版本没测) 问题如图: 重复请求2次,错误代码如图: 错误问题分析:html加载的时候回请求url加载数…

ElasticSearch Java API

ElasticSearch-Java Client类型 ElasticSearch-TransportClient环境准备 ElasticSearch-TransportClient连接 ElasticSearch-Document APIs ElasticSearch-搜索-原理 ElasticSearch-搜索-问题 ElasticSearch-搜索-问题解决思路 ElasticSearch-搜索-SearchType-类型一 E…

深度学习之卷积神经网络(Convolutional Neural Networks, CNN)

前面, 介绍了DNN及其参数求解的方法(深度学习之 BP 算法),我们知道DNN仍然存在很多的问题,其中最主要的就是BP求解可能造成的梯度消失和梯度爆炸.那么,人们又是怎么解决这个问题的呢?本节的卷积神经网络(Convolutional Neural Networks, CNN)就是一种解决方法. 我们…

深度学习之卷积神经网络(Convolutional Neural Networks, CNN)(二)

前面我们说了CNN的一般层次结构, 每个层的作用及其参数的优缺点等内容.深度学习之卷积神经网络(Convolutional Neural Networks, CNN)_fenglepeng的博客-CSDN博客 一 CNN参数初始化及参数学习方法 和机器学习很多算法一样, CNN在进行训练之前也要进行参数的初始化操作. 我们…

Hadoop1.x版本升级Hadoop2.x

引言 随着企业数据化和Hadoop的应用越加广泛,hadoop1.x的框架设计越来越无法满足人们对需求,Apache一直在对Hadoop1.x进行修改,最后推出了新一代的Hadoop2.x。从业界使用分布式系统的变化趋势和 hadoop 框架的长远发展来看,MapRed…

本页由试用版打印控件lodop6.2.6输出_Visual Basic 6.0 Sirk 迷你版

Visual Basic 6.0 Sirk 迷你版 VB6 Sirk Mini 2019更新1、支持主流操作系统,避免原版安装失败的问题:支持Windows XP、Vista、Win7、Win8、Win10(32位、64位)。2、保留大部分常用功能,避免精简版过度精简:包含原版完整控件&#x…

深度学习之卷积神经网络 LeNet

卷积神经网络典型CNN LeNet:最早用于数字识别的CNNLeNet5:现在常说的一般就是LeNet5AlexNet:2012ILSVRC冠军,远超第二名的CNN,比LeNet更深,用多层小卷积叠加来替换单个的大卷积ZF Net:2013ILSV…

dom4j的读写xml文件,读写xml字符串

百度了一些博客,大同小异,在选取jar包工具的时候大概看了下,大抵是jdom原始,dom4j优秀。于是做了些练习。 参考:http://www.cnblogs.com/mengdd/archive/2013/06/05/3119927.html 1 package com.test.xml;2 3 import j…