Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4563277
  • 博文数量: 1214
  • 博客积分: 13195
  • 博客等级: 上将
  • 技术积分: 9105
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-19 14:41
个人简介

C++,python,热爱算法和机器学习

文章分类

全部博文(1214)

文章存档

2021年(13)

2020年(49)

2019年(14)

2018年(27)

2017年(69)

2016年(100)

2015年(106)

2014年(240)

2013年(5)

2012年(193)

2011年(155)

2010年(93)

2009年(62)

2008年(51)

2007年(37)

分类: Mysql/postgreSQL

2012-05-01 00:47:08

文章来源:%E8%AE%80%E5%AF%AB%E5%88%86%E6%B5%81%E4%B8%80-mysql-proxy%E7%9A%84%E5%AE%89%E8%A3%9D%E6%96%B9%E5%BC%8F/

在上一篇文章中描述到 的架構,接著此篇將延伸那個架構再加入 來當mysql的代理,那麼要代理那些工作呢?主要是將讀寫分開,讓自動判斷來源的指令中是讀取(SELECT)還是寫入(ADD、UPDATE、DELETE),然後再將寫入的動作移至Master主機,讀取的動作平均移至多台的Slave主機。

當然,如果你的程式中已經將讀取跟寫入的動作已經自動分配至各個不同的mysql,那麼你就可以忽略本篇文章。

MySQL Proxy整體架構的概念圖如下:

(圖片來源:)

讓我們先來看一下 對於MySQL Proxy的功能及特性的說法如下:

MySQL Proxy is a simple program that sits between your client and MySQL server(s) that can monitor, analyze or transform their communication. Its flexibility allows for unlimited uses; common ones include:

  • load balancing
  • failover (故障恢復)
  • query analysis
  • query filtering and modification
  • RW Splitting ()
  • … and many more

要使用MySQL Proxy除了先了解MySQL Proxy的功能外,再來就是MySQL Proxy的安裝囉

在安裝MySQL Proxy前,必須先安裝好 readline >= 5.1 ,詳細readline 的安裝方式就不再說明,尚未安裝的網友可以前往 下載安裝;如果您都是用rpm安裝的話,可以用底下指令檢查看看 readline是否已經安裝:

$rpm -qa | grep readline

如果已經確定系統有readline 後,再來就是安裝LUA套件了,安裝到這邊網友可能會想說:甚麼是LUA?LUA能為MySQL Proxy做什麼事呢?

根據wiki的說法【Lua程式語言 是一個簡潔、輕量、可擴展的腳本語言】詳細請見 。是的,您沒有看錯,Lua是一種程式語言, 看到這裡您是否有意識到當程式人員真的很歹命,什麼程式都要學,寫網站程式用PHP、Javascript,還會延伸出不同的框架(framework) 像是JQuery…等,寫MySQL資料庫又有一些MySQL語法,接觸到Linux系統後,又要學一點都不人性的Shell script,現在架個MySQL Proxy又多了一個LUA程式語言,看到這裡真要給自己還有這些RD人員們拍拍手鼓勵一下了,加油加油!complain 發洩一下心情後,該做的還是要做 :P 讓我們來看一下Lua的安裝方式吧!

LUA安裝方式

版本:5.1.4
官網下載點:

$wget
$tar xzvf lua-5.1.4.tar.gz
$cd lua-5.1.4
$vi Makefile  #修改安裝路徑,本範例安裝路徑為 INSTALL_TOP= /usr/local/lua
$make linux install

依據上述指令即可安裝LUA,之後在/usr/local/lua就會發現LUA相關的檔案。

安裝完LUA後,再來就是安裝MySQL Proxy套件囉,在安裝MySQL Proxy前,請先確定您的系統上已經有安裝MySQL(廢話@@)

MySQL Proxy安裝方式

版本:0.8.0
官網下載點:http://dev.mysql.com/downloads/mysql-proxy/

請先至官網下載 0.8.0 版本的MySQL Proxy,本範例使用 Source code的安裝方式

$ tar xzvf mysql-proxy-0.8.0.tar.gz
$ cd mysql-proxy-0.8.0
$  env LUA_CFLAGS=’-I/usr/local/lua/include’ \
>  LUA_LIBS=’-L/usr/local/lua/lib -llua -ldl’ \
>  CFLAGS=’-I/usr/local/include’ \
>  LDFLAGS=’-L/usr/local/lib -lm’ \
>  PKG_CONFIG_PATH=/usr/local/lib/pkgconfig \
>  ./configure \
>  –prefix=/usr/local/mysql-proxy \
>  –with-mysql=/usr/local/mysql \
>  –with-lua
$ make;make install

看到上面的安裝方式或許會有一點亂,丫忠就針對這些參數說明一下,當然下指令【./configure –help】就會有英文說明了

  • LUA_CFLAGS:指定LUA安裝位置的include目錄,請參照上面LUA安裝方式的INSTALL_TOP設定
  • LUA_LIBS:指定LUA安裝位置的lib目錄,請參照上面LUA安裝方式的INSTALL_TOP設定
  • CFLAGS:用來指定MySQL Proxy會用到的其他套件的 include目錄
  • LDFLAGS:用來指定MySQL Proxy會用到的其他套件的 lib目錄
  • PKG_CONFIG:有一些版本訊息會放在pkgconfig目錄中,設定pkgconfig目錄位置,告訴MySQL Proxy去參照各套件的版本及位置
  • –prefix:mysql proxy的安裝位置  @@
  • –with-mysql:指定mysql的安裝位置

在安裝過程中可能會有一些錯誤訊息出現,丫忠遇到的問題是版本不合的問題,不過上述套件的版本是可以相容的 ^^y


阅读(1750) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~