Linux5u3下编译安装MySQL Proxy Lua 0.8.1

移动开发 iOS
Linux5u3下编译安装MySQL Proxy lua 0.8.1是本文要介绍的内容,主要记录了ENTERPRISE LINUX5u3版本下源码编译安装MySQL Proxy lua 0.8的步骤。

Linux5u3下编译安装MySQL Proxy 0.8.1是本文要介绍的内容,主要记录了ENTERPRISE LINUX5u3版本下源码编译安装MySQL Proxy 0.8的步骤。

MySQL Proxy是一个通过MySQL网络协议,提供MySQL服务器与客户端之间连接的应用工具,所有MySQL兼容的客户端(包括mysql命令行,调用mysql命令行的类库,以及支持MySQL网络协议的应用)均无需任何修改即可直接连接Mysql Proxy

1、安装依赖包

源码编译方式安装MySQL Proxy前,下列依赖包必须首先安装:

  1. libevent 1.x or higher (1.3b or later is preferred)    
  2. lua 5.1.x or higher    
  3. glib2 2.16.0 or higher (官方文档说是2.6.0或更高,实际安装时,mysql-proxy 0.8版本时提示不能低于2.16.0的)   
  4. pkg-config    
  5. libtool 1.5 or higher    
  6. MySQL 5.0.x or higher developer files   

(1)安装libevent

RHEL5.3版本自带的libevent版本较低,为1.1版,不符合需求,直接下载更高版本安装,操作步骤如下:

  1. # wget http://monkey.org/~provos/libevent-1.4.14b-stable.tar.gz  
  2. # tar xvfz libevent-1.4.14b-stable.tar.gz   
  3. # cd libevent-1.4.14b-stable   
  4. # ./configure --prefix=/usr/local/libevent-1.4   
  5. # make && make install  

(2)安装lua脚本语言包

Lua是一个极轻量级的脚本语言,MySQL Proxy通过该语言进行功能扩充。

首先到其官网下载***版本5.1.4,而后解压安装,依次执行命令如下:

  1. # wget http://www.lua.org/ftp/lua-5.1.4.tar.gz  
  2. # tar xvfz lua-5.1.4.tar.gz   
  3. # cd lua-5.1.4   
  4. # vi Makefile  

修改MakeFile文件,将:

  1. INSTALL_TOP= /usr/local  

修改为:

  1. INSTALL_TOP= /usr/local/lua  

这样做的目的,是为了将lua相关的文件放在同一目录内,便于查找和应用。

Lua的编译和安装详见目录内的INSTALL文件,三思这里是在linux下安装,直接执行下列命令即能完成编译和安装:

  1. # make linux install  

(3)安装glib2

官方文档说是需要2.6.0或更高版本,实际在安装mysql-proxy 0.8时,提示glib2的版本不能低于2.16.0,这里为了后面安装进程顺利执行,首先升级系统的glib2,步骤如下。

  1. # wget http://ftp.gnome.org/pub/gnome/sources/glib/2.22/glib-2.22.5.tar.gz   
  2. # tar xvfz glib-2.22.5.tar.gz   
  3. # cd glib-2.22.5   
  4. # ./configure --prefix=/usr/local/glib-2.2   
  5. # make && make install  

(4)安装MySQL开发包

主要需要用到mysql_config等应用,mysql的开发包可以直接到其官网下载:

  1. http://dev.mysql.com/downloads/mysql/5.1.html 

Rpm包的安装比较简单,执行命令如下:

  1. # rpm -ivh MySQL-devel-community-5.1.51-1.rhel5.x86_64.rpm  

2、安装MySQL Proxy

接下来,终于轮到正主上场,三思这里安装的是MySQL Proxy 0.8.1版本,也可以直接到其官网下载:

  1. http://dev.mysql.com/downloads/mysql-proxy/ 
  1. # tar xvfz mysql-proxy-0.8.1.tar.gz   
  2. # cd mysql-proxy-0.8.1   
  3. # ./configure LDFLAGS="-lm -ldl" LUA_CFLAGS="/usr/local/lua/bin/lua -I/usr/local/lua/include" 
  4. LUA_LIBS="/usr/local/lua/lib -llua" --prefix=/usr/local/mysql-proxy --with-lua   
  5. # make   
  6. # make install  

安装成功后,执行mysql-proxy命令验证:

  1. [root@rhel5u3 mysql-proxy]# /usr/local/mysql-proxy/bin/mysql-proxy -V   
  2. mysql-proxy 0.8.1   
  3. chassis: mysql-proxy 0.8.1   
  4. glib2: 2.22.5   
  5. libevent: 1.4.14b-stable   
  6. LUA: Lua 5.1.4   
  7. package.path: /usr/local/mysql-proxy/lib/mysql-proxy/lua/?.lua   
  8. package.cpath: /usr/local/mysql-proxy/lib/mysql-proxy/lua/?.so   
  9. modules   
  10. admin: 0.8.1   
  11. proxy: 0.8.1  

编译过程看起来简单,仅只是几条命令,但就是这个安装颇不顺利,折腾了三思整整一天时间,也许是我运气不好,当然更多应该还是水平有限,实际执行编译的过程中遇到了很多错误,错误信息及解决方案见下,希望对同样遇到该问题的同学有所帮助:

操作系统版本如下:

  1. [root@rhel5u3 ~]# cat /etc/issue   
  2. Enterprise Linux Enterprise Linux Server release 5.3 (Carthage)   
  3. Kernel \r on an \m  

错误1:

  1. checking for LUA... no   
  2. ... checked for Lua via pkg-config: No package ¨lua¨ found. retrying with lua5.1  

看错误信息是说找不到lua包。

解决方案:
(1)参数1.2步骤中所示,编译安装lua

(2)设置环境变量:

  1. export LUA_CFLAGS="-I/usr/local/lua/include"   
  2. export LUA_LIBS="-L/usr/local/lua/lib -llua -ldl"  

注意变量中的路径应为lua实际安装路径,而后重新执行configure配置编译程序。

如果执行上述操作故障依旧,可以尝试将lua安装路径下的etc/lua.pc文件复制到glib2安装路径中的lib/pkgconfig/文件夹内。

错误2:

  1. checking for GLIB... configure: error: Package requirements (glib-2.0 >= 2.16.0) were not met:   
  2. Requested ¨glib-2.0 >= 2.16.0¨ but version of GLib is 2.12.3  

说明默认识别到的glib2版本不正确。

解决方案:

(1)参照1.3步骤所示,编译安装适当版的glib;

(2)设置环境变量:

  1. export GLIB_CFLAGS="-I/usr/local/glib-2.2/include/glib-2.0"   
  2. export GLIB_LIBS="-L/usr/local/glib-2.2/lib/glib-2.0"   
  3. export GMODULE_CFLAGS="-I/usr/local/glib-2.2/include"   
  4. export GMODULE_LIBS="-L/usr/local/glib-2.2/lib"   
  5. export GTHREAD_CFLAGS="-I/usr/local/glib-2.2/include"   
  6. export GTHREAD_LIBS="-L/usr/local/glib-2.2/lib"  

特别强调,GMODULE和GTHREAD的相关变量必须设置,否则会遇到(gmodule-2.0 >= 2.16.0) were not met或(gthread-2.0 >= 2.16.0) were not met之类错误。

变量值中的路径应为glib2的实际安装路径,而后重新执行configure配置编译程序。

错误3:

  1. checking for event_init in -levent... no   
  2. configure: error: libevent is required  

没有找到libevent依赖包。

解决方案:

(1)参照1.1步骤中所示,编译安装libevent。

(2)设置环境变量:

  1. export LDFLAGS="-L/usr/local/libevent-1.4/lib -lm"  

而后重新执行configure配置编译程序

错误4:

  1. /usr/local/lua/lib/liblua.a: could not read symbols: Bad value  

看起来是lua调用出错,相关文档提示是提示:64bit环境可能遇到该现象。

解决方案:

A>. 编辑lua的src/MakeFile文件,修改下列参数:

  1. CFLAGS= -O2 -Wall $(MYCFLAGS)  

修改为:

  1. CFLAGS= -O2 -Wall -fPIC $(MYCFLAGS)  

B>. 按照1.2步骤中所示,编译安装lua。如果之前已经编译过,记得要执行make clean清除已编译配置。

错误5:

  1. /usr/local/glib-2.22/include/glib-2.0/glib/gtypes.h:34:24: error: glibconfig.h: No such file or directory  

解决方案:

  1. # cp /usr/local/glib-2.2/lib/glib-2.0/include/glibconfig.h /usr/local/glib-2.2/include/glib-2.0/  

而后重新执行编译。

小结:Linux5u3下编译安装MySQL Proxy 0.8.1的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-30 10:28:11

MySQL ProxyLUA

2011-08-30 10:08:38

Centos 5.2Mysql ProxyLUA

2011-08-30 11:00:10

MySQL ProxyLua

2011-08-30 11:09:26

MySQL ProxyLua

2011-08-30 10:36:31

Ubuntu 9.04Mysql ProxyLua

2011-08-30 09:59:47

Mysql ProxyLUA

2011-08-30 12:49:59

Mysql ProxyLua分离

2011-09-01 17:46:22

MySQL ProxyLua脚本

2011-03-08 11:22:29

LinuxLAMP

2017-08-07 16:41:39

LinuxOpenCV

2010-02-06 14:19:06

Linux MySQL

2011-08-30 13:08:55

Mysql ProxyLua分离

2011-08-30 13:26:18

Mysql ProxyLua

2010-04-01 13:37:24

CentOS系统5

2012-03-21 09:04:10

MySQL

2018-10-08 09:05:26

LinuxM3U播放列表

2011-08-30 10:51:40

MySQL ProxyLua分离

2010-01-04 10:02:10

Linux挂载u盘

2010-02-02 17:57:47

Linux PPStr

2021-06-03 08:04:13

LinuxMySQL配置
点赞
收藏

51CTO技术栈公众号