安装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的最新版本,如果需要历史版本的话,可以去下载。
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。