`

MySQL Proxy安装和使用(一)

阅读更多

按照手册安装MySQL Proxy之前先要安装以下软件

  • libevent 1.x or higher (1.3b or later is preferred)

  • lua 5.1.x or higher

  • glib2 2.6.0 or higher

  • pkg-config

  • libtool 1.5 or higher

  • MySQL 5.0.x or higher developer files

    rpm查看libevent
  • $rpm -q libevent
    libevent-1.1a-3.2.1

    勉强用吧,家下来安装lua

    $tar xvzf lua-5.1.4.tar.gz

    $cd lua-5.1.4

    $make linux

    $make install

    $cp etc/lua.pc /usr/local/lib/pkgconfig/

    之后安装MySQL Proxy按转世继续报错,呵呵,虽然手册上对于glib2写的版本是2.6.0及以后实际在MySQL Proxy0.7.2上是要求>2.16的,继续升级glib2

    $tar xvzf glib-2.23.0.tar.gz

    $cd glib-2.23.0

    $./configure

    $make

    $make install

    然后提示安装libevent版本过低,晕了

    $tar xvzf libevent-1.4.13-stable.tar.gz

    $cd libevent-1.4.13-stable

    $./configure

    $make

    $make install

    这次再去安装MySQL Proxy

    $tar zxf mysql-proxy-0.7.2 .tar.gz

    $cd mysql-proxy-0.7.2

    $./configure --with-mysql=/usr/local/mysql/bin/mysql_config --with-lua

    $make

    $make install

    默认的mysql-proxy 被安装到/usr/local/sbin/mysql-proxy而lua实例脚本则在/usr/local/share/doc下(不过好像需要之前make test才有,不确定) .

    查看下MySQL Proxy的版本

    $ mysql-proxy -V
    mysql-proxy: error while loading shared libraries: /usr/local/lib/libmysql-chassis.so.0: cannot restore segment prot after reloc: Permission denied

    报错,这是SELinux的问题,可如下解决

    $chcon -t texrel_shlib_t /usr/local/lib/libmysql-chassis.so.0

    $ mysql-proxy -V
    mysql-proxy 0.7.2
      glib2: 2.23.0
      libevent: 1.4.13-stable
      lua: Lua 5.1.4
        LUA_PATH: /usr/local/lib/mysql-proxy/lua/?.lua
        LUA_CPATH: /usr/local/lib/mysql-proxy/lua/?.so
    2009-12-18 00:05:34: (warning) g_set_prgname() called multiple times
      == plugins ==
      admin: 0.7.0
      proxy: 0.7.0

    至此MySQL Proxy安装完成,记住LUA_PATH: /usr/local/lib/mysql-proxy/lua/?.lua下面要用到

    启动,编译启动脚本,

    $vi /etc/init.d/mysql-proxy

    #!/bin/sh
    export LUA_PATH=/usr/local/lib/mysql-proxy/lua/?.lua

    mode=$1
    if [ -z "$mode" ] ; then
      mode="start"
    fi

    case $mode in
      'start')
        mysql-proxy --daemon \
    --admin-address=:4401 \
    --proxy-address=:3307 \
    --proxy-backend-addresses=:3306 \
    --proxy-read-only-backend-addresses=192.168.133.232:3306 \
    --proxy-read-only-backend-addresses=10.10.74.61:3306 \
    --proxy-lua-script=/usr/local/share/doc/mysql-proxy/rw-splitting.lua
        ;;

      'stop')
        killall mysql-proxy
        ;;

      'restart')
        if $0 stop ; then
          $0 start
        else
          echo  "retart failed!!!"
          exit 1
        fi
        ;;
    esac
    exit 0

    现在解释一下启动脚本:
    --daemon 采用daemon方式启动
    --admin-address=:4401 指定mysql proxy的管理端口,在这里,表示本机的4401端口
    --proxy-address=:3307 指定mysql proxy的监听端口,也可以用 127.0.0.1:3307 表示
    --proxy-backend-addresses=:3306 指定mysql主机的端口
    --proxy-read-only-backend-addresses=192.168.1.1:3306 指定只读的mysql主机端口
    --proxy-read-only-backend-addresses=192.168.1.2:3306 指定另一个只读的mysql主机端口
    --proxy-lua-script=/usr/local/share/mysql-proxy/rw-splitting.lua 指定lua脚本,在这里,使用的是rw-splitting脚本,用于读写分离

    (以上脚本内容摘自叶金荣blog )

    googlecode上也有mysql-proxy脚本也可以下下来修改使用

    $wget http://customcode.googlecode.com/files/mysql-proxy

    完整的参数可以运行以下命令查看:

    $mysql-proxy --help-all

    之后可以通过以下命令启动|停止|重启

    $ /etc/init.d/mysql-proxy start

    $ /etc/init.d/mysql-proxy stop

    $ /etc/init.d/mysql-proxy restart

    居然提示权限不够,不过简单

    $chmod +x /etc/init.d/mysql-proxy

    这样该ok了把,可能会报错类似于:

    /etc/init.d/mysql-proxy start
    2009-12-18 01:59:52: (warning) g_set_prgname() called multiple times
    2009-12-18 01:59:52: (critical) chassis.c:981: could not raise RLIMIT_NOFILE to 8192, Invalid argument (22). Current limit still 13815894353589044224.

    这个一个警告级别的错误,意思是MySQL Proxy在你的系统上不能把open files limit提升到8192,不过没关系的,MySQL Proxy依然好好的运行在你的电脑上.

    $mysql -h127.0.0.1 -uroot -p -P3307
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 6
    Server version: 5.1.40-blang-debug-log Source distribution

    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

    mysql> show processlist;
    +----+------+----------------+------+---------+------+-------+------------------+
    | Id | User | Host           | db   | Command | Time | State | Info             |
    +----+------+----------------+------+---------+------+-------+------------------+
    |  6 | root | localhost:3688 | NULL | Query   |    0 | NULL  | show processlist |
    +----+------+----------------+------+---------+------+-------+------------------+
    1 row in set (0.09 sec)

    可以看到,产生了一个新连接。

     

    分享到:
    评论

    相关推荐

      MySQL Proxy 实现负载均衡测试

      本文将详细介绍如何使用 MySQL Proxy 来实现负载均衡,并通过具体的测试案例来展示其工作原理和效果。 #### 二、MySQL Proxy 概述 MySQL Proxy 是一款由 MySQL 社区开发的开源工具,它作为一个轻量级的中间层服务,...

      安装mysql-proxy所需工具

      下载后解压,进入源码目录,然后执行`./configure`检查依赖项,再运行`make`和`make install`进行编译和安装。 7. **配置MySQL Proxy**: 安装完成后,你需要创建一个配置文件,指定代理如何连接到MySQL服务器,...

      mysql-proxy 安装配置

      MySQL Proxy 是一个开源工具,它允许用户在 MySQL 客户端和服务器之间插入一个代理层,从而实现诸如负载均衡、故障切换、读写分离等高级功能。以下是对MySQL Proxy安装配置及其相关知识点的详细说明: 1. **安装...

      mysql-proxy-0.8.5-windows-x86-32bit

      MySQL Proxy 是一个开源...总的来说,`mysql-proxy-0.8.5-windows-x86-32bit` 是一个方便Windows 32位用户使用的 MySQL 数据库管理工具,通过它,我们可以更有效地监控和管理 MySQL 服务器,提高系统的稳定性和安全性。

      MySQL Proxy 说明与配置

      MySQL Proxy 是一个开源工具,由MySQL AB公司开发,允许用户在MySQL服务器和客户端应用程序之间插入一个代理层。这个代理层可以用来监控、过滤、修改或者路由数据库连接的流量,为数据库管理和性能优化提供了极大的...

      windows++mysql-proxy全部数据包

      在IT领域,数据库管理和网络通信是至关重要的环节,而MySQL Proxy作为一款开源工具,为数据库管理提供了更多灵活性和控制权。本资料包“windows++mysql-proxy全部数据包”显然是针对Windows平台的MySQL Proxy安装和...

      mysql配置mysql-proxy读写分离1

      MySQL Proxy 是一个开源工具,它允许你在 MySQL 客户端和服务器之间设置一个代理层,以便实现诸如负载均衡、故障切换、读写分离等高级功能。在这个场景中,我们将讨论如何配置 MySQL Proxy 来实现读写分离,以提高...

      mysql proxy

      MySQL Proxy 是一个轻量级的中间件,它作为数据库客户端和MySQL服务器之间的代理,提供了一系列的优势和功能。MySQL Proxy 的主要优点在于其灵活性和透明性,它可以无感知地插入到应用和数据库之间,使得对数据库的...

      mysql-proxy安装部署.docx

      4. **安装 MySQL Proxy**:从源码编译 MySQL Proxy,创建自定义的安装目录,并使用 `./configure` 和 `make` 命令来编译和安装。 完成以上步骤后,MySQL Proxy 应该已经成功安装。接下来,可以通过编写 Lua 脚本来...

      mysql-proxy

      MySQL Proxy是一款轻量级的开源工具,主要用于MySQL数据库的读写分离、IO优化以及实现一定的负载均衡。在大型系统中,数据库通常...然而,合理使用和配置MySQL Proxy,以及结合其他数据库优化策略,才能最大化其效益。

      使用mysql-proxy实现mysql读写分离

      - **安装libevent**:这是一个高性能的事件处理库,对于提高mysql-proxy的并发处理能力非常重要。 - **安装check**:这是一个用于编写和运行单元测试的库,虽然不是必须的,但有助于确保软件的质量。 - **安装...

      python 开发的mysql proxy : angel proxy

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

      mysql proxy问题的解决方法

      MySQL Proxy 是一个轻量级的中间件,用于在 MySQL 客户端和服务器之间提供额外的功能,如负载均衡、故障切换、数据过滤等。然而,使用 MySQL Proxy 时可能会遇到一些问题,本篇文章将详细讨论这些问题及其解决方案。...

      MYSQL学习资料

      MySQL Proxy应用入门 1 安装MySQL Proxy MySQL Proxy应用入门 2 MySQL Proxy配置选项 MySQL Proxy应用入门 3 使用MySQL Proxy MySQL UDF Mysql Proxy安装配置测 MySQL5 5 Semi synchronous Replication(半同步复制...

      MySQL-Proxy

      MySQL-Proxy 是一个轻量级的代理服务器,用于在客户端应用程序和 MySQL 服务器之间建立一层中间层。它能够实现诸如负载均衡、读写分离、查询缓存等功能,非常适合用在需要对 MySQL 数据库进行性能优化的场景中。 ##...

      Mysql Proxy 实现mysql读写分离.pdf

      MySQL Proxy 就是这么一个中间层代理,简单的说,MySQL Proxy 就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用 lua 脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载平衡。...

      mysql-proxy安装与配置

      MySQL Proxy是一个处于你的client端和MySQL server端之间的简单程序,它可以监测、分析或改变它们的通信。它使用灵活,没有限制,常见的用途包括:负载平衡,故障、查询分析,查询过滤和修改等等。  MySQL Proxy...

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

      MySQL Proxy 是一个轻量级的中间件,它允许你在MySQL客户端和服务器之间插入一个代理层,从而实现对数据库访问的监控、控制以及优化。在本文中,我们将详细讲解如何安装MySQL Proxy并使用其基本命令,特别是针对读写...

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

      通过以上步骤,我们不仅成功安装了 MySQL Proxy 并配置了读写分离与负载均衡,还对 MySQL Proxy 的基本使用进行了简单的介绍。MySQL Proxy 作为一款强大的中间件工具,极大地简化了数据库集群的管理和维护工作。对于...

    Global site tag (gtag.js) - Google Analytics