/ 中存储网

MySQL proxy lua安装配置过程详解

2014-07-13 16:31:56 来源:中存储网
MySQL Proxy Lua安装配置是本文要介绍的内容,关于MySQL Proxy的二进制版本的安装相对简单,无需多言,下面介绍的是源代码安装:
安装pkg-config:
tar zxvf pkg-config-0.23.tar.gz  
cd pkg-config-0.23  
./configure  
make  
make install 
确保PKG_CONFIG_PATH环境变量包含了相关的pkg-config配置文件路径:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig 

安装libevent:
tar zxvf libevent-1.4.10-stable.tar.gz  
cd libevent-1.4.10-stable  
./configure  
make  
make install 

安装glib:
tar zxvf glib-2.20.0.tar.gz  
cd glib-2.20.0  
./configure  
make  
make install 

安装lua:
tar zxvf lua-5.1.4.tar.gz  
cd lua-5.1.4 
如果你的服务器是64位的,这时要调整一下Makefile:vi src/Makefile,在CFLAGS里加上-fPIC,否则会出错:
/usr/bin/ld: /usr/local/lib/liblua.a(lapi.o):  
relocation R_X86_64_32 against `luaO_nilobject_' can not be used when making a shared object;  
recompile with -fPIC  
/usr/local/lib/liblua.a: could not read symbols: Bad value 
接下来不用执行常见的configure,直接make:
make linux  
make install 
安装pkg-config配置文件,以便编译MySQL Proxy时能找到lua:
cp etc/lua.pc /usr/local/lib/pkgconfig/lua5.1.pc 
如果没有执行此步骤的话,在后面编译安装MySQL Proxy的时候,会得到类似下面的错误信息:
Package lua5.1 was not found in the pkg-config search path.  
Perhaps you should add the directory containing `lua5.1.pc'  
to the PKG_CONFIG_PATH environment variable  
No package 'lua5.1' found 

安装mysql
这里介绍的是完整安装mysql,其实你只要安装mysql开发包即可。
tar zxvf mysql-5.1.33.tar.gz  
cd tar zxvf mysql-5.1.33  
./configure  
make  
make install  
cp support-files/mysql.server /etc/init.d/mysql  
chown +x /etc/init.d/mysql  
cp support-files/my-[small|medium|large|huge|innodb-heavy-4G].cnf /etc/my.cnf 
如果my.cnf里有skip-federated选项,就注释它,否则安装数据库的时候会出现类似下面的错误:
[ERROR] /usr/local/libexec/mysqld: unknown option '--skip-federated'  
/usr/local/bin/mysql_install_db --user=mysql 
/usr/local/bin/mysqld_safe --user=mysql & 
保证系统能找到mysql_config,后面编译MySQL Proxy会用到它:
export PATH=$PATH:/usr/local/bin 
还要保证系统能找到mysql库文件:
vi /etc/ld.so.conf 加入/usr/local/lib目录
执行:/sbin/ldconfig /etc/ld.so.conf

安装MySQL Proxy:
tar zxvf MySQL Proxy-0.7.0.tar.gz  
cd MySQL Proxy-0.7.0  
./configure  
make  
make install 
按照官方介绍做好启动脚本/etc/init.d/MySQL Proxy和参数脚本/etc/sysconfig/MySQL Proxy,并设置:
chmod +x /etc/init.d/MySQL Proxy  
chkconfig --add MySQL Proxy 
搞定了,测试一下:/usr/local/sbin/MySQL Proxy -V。官方论坛里有很多讨论,可以参阅。
注意:你的操作系统式32位还是64位
我在32位服务器上使用MySQL Proxy,感觉非常不稳定,时不时出错:
Lost connection to server during query,MySQL server has gone away 
此时,MySQL Proxy进程往往会挂掉,同时也会报类似下面的错误:
network-mysqld-proxy.c.3318: COM_(0x03), packet 4 should not be (NULL|EOF), got: fffffffe 
换到64位服务器后,稳定性大大提高。所以如果想在产品环境上使用MySQL Proxy,强烈建议使用64位。
至于MySQL Proxy版本的选择,最好各个版本的MySQL Proxy都装上试试看,不一定是版本越高越稳定。如果把MySQL Proxy用于读写分离目的的话,以我自己的测试结果来看,目前最稳定的版本是64位服务器下的0.6.X版本(和0.7.X比较),当然,这个结论不一定适用于你,最好自己实际动手测试看看。
补充:官方网站好像只保留MySQL Proxy的最新版本,如果需要历史版本的话,可以去下载。