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.pswp.cn/news/454115.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454115.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454115.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Django models模型

Django models模型 一. 所謂Django models模型,是指的對數據庫的抽象模型,models在英文中的意思是模型,模板的意思,在這里的意思是通過models,將數據庫的借口抽象成python自己的一個類。然后在python Django框架其他代…

Page.FindControl方法找不到指定控件的原因

在ASP.NET 2.0中,引入了MasterPage的機制,在當前頁使用MasterPage的情況下,放在 ContentPlaceholder1這樣的內容頁的控件無法用Page.FindControl來查找,原因何在?MSDN對FindControl的解釋:在當前的命名容器…

ATT匯編語言與GCC內嵌匯編簡介

AT&T匯編語言與GCC內嵌匯編簡介 1 AT&T 與INTEL的匯編語言語法的區別 1.1大小寫 1.2操作數賦值方向 1.3前綴 1.4間接尋址語法 1.5后綴 1.6指令 2 GCC內嵌匯編 2.1簡介 2.2內嵌匯編舉例 2.3語法 2.3.1匯編語句模板 2.3.2輸出部分 2.3.3輸入部分 2.3.4限制字符 2.3.5破…

Python內存管理以及垃圾回收機制

垃圾回收:用通俗點的語言解釋就是內存管理和垃圾回收的過程. 大管家refchain 在Python的C源碼中有一個名為refchain的環狀雙向鏈表,這個鏈表就比較厲害了,因為Python程序中一旦創建對象都會把這個對象添加到refchain這個鏈表中。也就是說他…

pythonfillcolor_openpyxl 填充顏色(單元格)

如果需要填充某個單元格的顏色需要3步:# 1-加載庫文件from openpyxl import Workbookfrom openpyxl.styles import PatternFill#2-新建一個工作簿wb Workbook()ws wb.active#隨便賦個值d4 ws[D4]d4 43d4.value#3-設置樣式,并且加載到對應單元格fill …

Mint-ui中loadmore(上拉加載下拉刷新)組件在ios中滑動會觸發點擊事件的解決方法...

bug說明: Mint-ui中loadmore(上拉加載下拉刷新)組件 在 使用fastclick的情況下 ,在ios設備中滑動會觸發點擊事件; 解決方法: 我是按需引入,去項目中找到loadmore下的index.js,全部引入的要找mint下面mint-u…

【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還是一個比較陌生的東西…

包裝函數

function wrap(object,method,wrapper){ //object:包裝方法所屬對象 method:方法名 wrapper:替換函數var fn object[method];return object[method] function(){return wrapper.apply(this,[fn.bind(this)].concat(Array.prototype.slice.call(arguments)));}; } 轉載于…

JAR——pinyin4j-2.5.0

簡介:將中文轉為拼音; 使用: 123//返回的是字符串String pinyin[] PinyinHelper.toHanyuPinyinStringArray(chinese);//eg:你----ni3本文轉自wauoen51CTO博客,原文鏈接:http://blog.51cto.com/7183397/1605894&#…

Android高效加載大圖、多圖解決方案,有效避免程序OOM

http://blog.csdn.net/guolin_blog/article/details/9316683轉載于:https://www.cnblogs.com/jianglijs/p/7827524.html

Flask 上下文源碼解析

簡單來說,上下文包括request_ctx(封裝了request和session),app_request(封裝了app和g),兩個ctx都儲存在一個叫做Local的數據結構中,這個結構的作用就是會自動根據不同的線程id返回對應的數據,然后通過一個叫做 LocalStark 的結構把…

reg型變量怎么賦值_UiPath變量介紹和使用

1 變量變量主要用于存儲數據,它在RPA中扮演重要的數據傳遞角色,是RPA編程不可或缺的一部分。它包括變量名稱和變量的值,變量的值支持多種數據類型,包括從通用值,文本,數字,數據表,時…

gcc 使用教程

gcc 使用教程 目 錄 gcc makefile寫法 gcc_egcs使用 gdb使用 gcc常用選項對代碼的影響 一般情況 -O 編譯選項 -O2 編譯選項 -fomit-frame-pointer 編譯選項-fomit-frame-pointer && -O2-fPIC 編譯選項 -static 編譯選項 AT&T的匯編格式 x86內聯匯編 簡述 內聯匯編…

Struts2教程9:實現自已的攔截器

在上一篇中介紹了Struts2攔截器的原理,在這一篇中我們將學習一下如何編寫自己的攔截器。一、攔截器的實現實現一個攔截器非常簡單。實際上,一個攔截器就是一個普通的類,只是這個類必須實現com.opensymphony.xwork2.interceptor.Interceptor接…

標準C程序設計七---66

Linux應用 編程深入 語言編程標準C程序設計七---經典C11程序設計 以下內容為閱讀: 《標準C程序設計》(第7版) 作者:E. Balagurusamy(印), 李周芳譯 清華大學出版社…

深度學習之概述

深度學習的應用場景 1、圖像應用: 1.1 大規模(大數據量)圖片識別(聚類/分類),如人臉識別,車牌識別,OCR等。人臉識別算法:① faceID ② faceNet 1.2 以圖搜圖,圖像分割 1.3 目標檢測&#xff0…

如何根據對象獲取到對應的表名_Excel VBA 常用對象二

下面繼續講解上一節中未講完的內容:Excel VBA編程中常常使用的那些對象到底是什么,如何在代碼中表示它們。Worksheet對象Worksheet對象代表工作表。工作簿中的每個工作表都是一個Worksheet對象,所有Worksheet對象構成了Worksheets集合。我們使…