`
lipsion
  • 浏览: 15014 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

linux下安装mysql-proxy 配置读写分离

阅读更多
一、软件列表

  ncurses-5.7.tar.gz
    wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.7.tar.gz
  mysql-proxy-0.8.1-linux-rhel5-x86-64bit.tar.gz
    wget http://mirrors.dotsrc.org/mysql/Downloads/MySQL-Proxy/mysql-proxy-0.8.1-linux-rhel5-x86-64bit.tar.gz
  gettext-0.18.1.1.tar.gz
    wget http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.1.1.tar.gz
  glib-2.26.1.tar.gz
    wget http://ftp.acc.umu.se/pub/GNOME/sources/glib/2.26/glib-2.26.1.tar.gz
  pkg-config-0.25.tar.gz
    wget http://pkg-config.freedesktop.org/releases/pkg-config-0.25.tar.gz
  lua-5.1.4.tar.gz
    wget http://www.lua.org/ftp/lua-5.1.4.tar.gz
  libevent-1.4.13-stable.tar.gz
    wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz

二、运行环境

192.168.111.101  mysql
192.168.111.102  mysql
192.168.111.103  mysql-proxy

三、安装过程
注意:如果安装过程中因为gcc导致不能安装时,使用yum install gcc*或者yum update

1、	安装ncurses
./configure --prefix=/usr --with-shared &&
make &&
make install &&
chmod 755 /usr/lib/*.5.3 &&
mv /usr/lib/libncurses.so.5* /lib &&
ln -sf libncurses.a /usr/lib/libcurses.a &&
ln -sf ../../lib/libncurses.so.5 /usr/lib/libncurses.so &&
ln -sf ../../lib/libncurses.so.5 /usr/lib/libcurses.so

--with-shared: 使能建立共享的ncurses库文件。
chmod 755 /usr/lib/*.5.3: 共享库文件应该是可执行的。Ncurses 的安装程序没有正确设置文件权限,所以我们手动来设置好。
ln -sf libncurses.a libcurses.a: 有的程序会试图用 -lcurses 而不是 -lncurses 来链接。这个符号链接使这种程序能正确链接。
2.安装pkg-config
  tar zxvf pkg-config-0.25.tar.gz
  cd pkg-config-0.25
  ./configure
  make && make install
  
  vi /etc/profile
  export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig

3.安装gettext
  tar zxvf gettext-0.18.1.1.tar.gz
  cd gettext-0.18.1.1
  ./configure
  make && make install

4.安装libevent
tar zvfx libevent-1.4.13-stable.tar.gz
cd libevent-1.4.13-stable
./configure
make && make install

5.安装glib
  tar zxvf glib-2.26.1.tar.gz
  cd glib-2.26.1
  ./configure
  make && make install
6.安装lua
  tar zxvf lua-5.1.4.tar.gz
  cd lua-5.1.4
  如果是64位
  vi src/Makefile
  CFLAGS= -O2 -Wall $(MYCFLAGS) 改CFLAGS= -O2 -fPIC -Wall $(MYCFLAGS)
  make linux

#在包含自 lua.h:16 的文件中,
#从 lua.c:15:
#luaconf.h:275:31: 错误:readline/readline.h:没有那个文件或目录
#luaconf.h:276:30: 错误:readline/history.h:没有那个文件或目录
#lua.c: In function ‘pushline’:
#lua.c:182: 警告:隐式声明函数 ‘readline’
#lua.c:182: 警告:赋值时将整数赋给指针,未作类型转换
#lua.c: In function ‘loadline’:
#lua.c:210: 警告:隐式声明函数 ‘add_history’
#make[2]: *** [lua.o] 错误 1
#make[2]: Leaving directory `/data0/software/lua-5.1.4/src’
#make[1]: *** [linux] 错误 2
#make[1]: Leaving directory `/data0/software/lua-5.1.4/src’
#make: *** [linux] 错误 2

   yum install libtermcap-devel ncurses-devel libevent-devel readline-devel
   make install
   cp etc/lua.pc /usr/local/lib/pkgconfig/lua5.1.pc


7.安装MYSQL-Proxy
tar zxvf mysql-proxy-0.8.1-linux-rhel5-x86-64bit.tar.gz –C /usr/local/
cd /usr/local
mv mysql-proxy-0.8.1-linux-rhel5-x86-64bit mysql-proxy-0.8.1 

vi /etc/profile
export PATH=$PATH:/usr/local/mysql-proxy-0.8.1/bin/

#查看版本
mysql-proxy -V

vi /etc/init.d/mysql-proxy
在/etc/init.d/目录下创建mysql-proxy
#!/bin/bash
export LUA_PATH=/usr/local/mysql-proxy-0.8.1/share/doc/mysql-proxy/?.lua
mode=$1
if [ -z "$mode" ] ; then
mode="start"
fi
case $mode in
start)
mysql-proxy --daemon \
--admin-username='root' \
--admin-password='123456' \
--admin-lua-script=/usr/local/mysql-proxy-0.8.1/share/doc/mysql-proxy/rw-splitting.lua \
--proxy-read-only-backend-addresses=192.168.111.101:3306 \
--proxy-backend-addresses=192.168.111.102:3306 \
--proxy-lua-script=/usr/local/mysql-proxy-0.8.1/share/doc/mysql-proxy/rw-splitting.lua &
;;
stop)
killall -9 mysql-proxy
;;
restart)
if $0 stop ; then
$0 start #不知道为何不生效
else
echo  "retart failed!!!"
exit 1
fi
;;
esac
exit 0

运行、关闭
chmod 755 /etc/init.d/mysql-proxy
/etc/init.d/mysql-proxy start
/etc/init.d/mysql-proxy stop

测试
lsof –i:4040
mysql-proxy 默认端口为4040 4041

配置
vim /usr/local/mysql-proxy-0.8.1/share/doc/mysql-proxy/rw-splitting.lua

a. 修改如下部分代码段:
proxy.global.config.rwsplit = {

#这样可以进行快速测试,因为mysql-proxy要连接数达到下限时才读写分离
min_idle_connections = 1,        #默认是4
max_idle_connections = 1,        #默认是8

#打开这个选项,可以在控制台得到很多提示,让我们清除的看到访问的哪个数据库
is_debug = true
}
分享到:
评论

相关推荐

    MySQL-Proxy快速实现读写分离以及负载均衡

    MySQL Proxy是MySQL数据库系统中的一个轻量级工具,用于实现数据库的读写分离和负载均衡。它作为一个中间代理服务器,接收来自客户端的请求,然后根据配置策略将这些请求转发到合适的MySQL服务器实例上。在上述描述...

    MYSQL数据库读写分离mysql-proxy 32bit包

    为了解决这个问题,MySQL提供了一个名为`mysql-proxy`的工具,这正是"MYSQL数据库读写分离mysql-proxy 32bit包"的主题。MySQL Proxy是一个轻量级的代理服务器,它可以坐在MySQL服务器和客户端应用程序之间,动态地...

    linux下mysql amoeba读写分离配置

    总结来说,通过在Linux环境下配置MySQL主从复制和读写分离,我们可以提高数据库系统的可靠性和性能。无论是使用Amoeba还是MySQL-Proxy,都需要根据具体的应用需求和环境来选择最适合的解决方案。记得在配置过程中...

    Mysql Proxy 实现mysql读写分离.pdf

    4. 安装 mysql-proxy:将下载的 mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz 解压到 /opt/mysql-proxy 目录下,设置环境变量:export PATH=$PATH:/opt/mysql-proxy/mysql-proxy-0.8.5/bin 读写分离配置: 1. ...

    LAMP+Proxy+读写分离

    配置MySQL-Proxy实现读写分离通常包括以下步骤: 1. 安装MySQL-Proxy软件,例如在Linux系统中通过wget下载,然后解压缩并移动到合适的位置。 2. 配置环境变量,将MySQL-Proxy的bin目录添加到PATH环境变量中,使系统...

    mysql proxy搭建

    可以编辑 `/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua` 文件,修改读写分离的配置: ```lua local function connect_server() if not mysql_backend.connect_server then mysql_backend....

    安装LAP+mysql主从库 apache+mysql+proxy主从+PHP+discuz论坛 .docx

    4. MYSQL-Proxy读写分离:MYSQL-Proxy是MYSQL官方提供的中间件服务,支持无数客户端连接,同时后端可连接多台MYSQL Server服务器,可以实现读写分离和负载均衡。 5. Amoeba读写分离:Amoeba是一个基于MYSQL的代理...

    在appserver上配置mysql读写分离

    在AppServer上配置MySQL读写分离是提升数据库性能和可用性的重要策略,尤其在高并发、大数据量的应用场景中。MySQL Proxy是实现这一目标的一种工具,它可以动态地控制数据库连接,实现读操作与写操作的分离,从而...

    MySQL搭建Amoeba_读写分离.docx

    在本文中,我们将详细介绍如何使用 Amoeba 实现 MySQL 读写分离的配置过程。Amoeba 是一个基于 MySQL 的 proxy,能够集中地响应应用的请求,并根据用户事先设置的规则,将 SQL 请求发送到特定的数据库上执行,从而...

    MySQL Proxy的安装及基本命令使用教程

    在本文中,我们将详细讲解如何安装MySQL Proxy并使用其基本命令,特别是针对读写分离功能的应用。 ### 1. 安装MySQL Proxy 首先,确保你的系统已经安装了LUA,因为MySQL Proxy依赖于LUA解释器。你可以从LUA官方...

    通过mysql-proxy完成mysql读写分离

    随后修改MySQL Proxy配置,使其同时连接两个主库,再次创建新表,此时两张表都会出现在两个数据库中,表明读写分离已生效。 MySQL Proxy的工作原理是,当接收到客户端的SQL请求时,会根据预设的规则(如rw-...

    amoeba-mysql-3.0.5-RC.tar.gz

    Amoeba MySQL 3.0.5 RC 是一个专为MySQL设计的分布式中间件,用于实现数据库的读写分离功能,尤其适用于大型、高并发的Linux环境。在深入理解这个软件之前,我们先来了解一些基本概念。 1. **数据库读写分离**:在...

    mysql读写分离调度器

    MySQL读写分离调度器是一种数据库架构策略,用于优化高并发情况下的数据库性能。在大型Web应用中,数据库经常成为性能瓶颈,因为所有的读写操作都集中在这里。读写分离通过将读操作和写操作分配到不同的数据库服务器...

    python 开发的mysql proxy : angel proxy

    标题中的“Python开发的MySQL Proxy:Angel Proxy”指的是一个用Python编程语言编写的数据库中间件,它的主要功能是实现MySQL数据库的读写分离。在大型系统中,为了提高数据库的性能和可扩展性,通常会采用读写分离...

    mysql-7 (1).pdf

    6. 掌握MySQL读写分离的原理 1. mysql-proxy (GA) 2. mysql router(待完善) 3. Mycat 7. 要理解为什么分库分表 8. 要理解如何分库分表 9. 什么时候选择垂直分库、什么时候选择水平分表 10. 要明白分库分表中会...

    linux_基于主从结构读写分离MYSQL集群

    linux_基于主从结构读写分离MYSQL集群

    mysql-5.6.13.tar.gz

    - 负载均衡:通过MySQL Proxy或MySQL Fabric实现读写分离和负载均衡。 - 高可用集群:采用主备复制、多主复制或Galera Cluster实现高可用性。 通过理解以上知识点,用户可以有效地安装、配置和管理MySQL 5.6.13,...

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    02-mysql-proxy读写分离实现技术分享.avi 03-PHP程序实现读写分离技术分享.avi 04-xtrabackup热备工具技术分享.avi 05-mysql-mmm高可用实现技术分享.avi 文档资料 01-mysql-mmm高可用架构-王雄.rar 02-mysql半...

    linux运维必会Mysql企业面试题.docx

    以上就是关于MySQL集群、高可用方案、读写分离实践及处理中文数据乱码和批量更改表引擎的详细解释。这些知识点对于Linux运维人员在面对企业面试时至关重要,因为它们直接关系到数据库的稳定性和高效运维。

    linux,mysql.docx

    - **主从复制、读写分离、主备切换**:主从复制确保数据一致性,读写分离减轻主服务器压力,主备切换确保高可用性。MySQL Proxy用于代理管理主从服务器,对外提供单一入口。 - **分布式集群**:按业务需求将不同...

Global site tag (gtag.js) - Google Analytics