无法编译sqlrelay对mysql支持的问题
FreeBSD/Linux/Server August 27th, 2009 228 Views一直看到网上有文章介绍sqlrelay+mysql实现连接池及读写负载均衡,今天有时间研究一把准备用它来改善论坛负荷大访问慢的问题。一直按照这篇教程编译安装以前也写过一篇笔记记录在freebsd编译安装的过程并没有碰到什么问题,今天在CentOS 5.2 64bit下进行编译时出现找不到mysql相关文件,重新configure发现在检查mysql相关文件时全部为no并设置mysql include目录为/usr/include/mysql这时就知道configure里检测不到mysql相关文件,但我明明已经安装了mysql-5.1.31在/usr/local/mysql为什么configure找到的是/usr/include/mysql目录,研究了一下configure是在系统默认路经(/bin:/usr/bin:/usr/local/bin)找mysql_config来确定mysql所安装的目录,试着执行了mysql –version一下得到版本为mysql-5.0.45-7.el5发现不对我明明安装的是mysql-5.1.31怎么会变成mysql-5.0.45-7.el5,回想前段时间用python写脚本连接mysql处理一些数据yum安装MySQLdb会依赖mysql-5.0.45-7.el5。
经过上一段的分析得知由于系统所存在的mysql-5.0.45-7.el5这个精简版本mysql只包含几个二进制命令文件使得在configure无法找到include库文件,最简单的办法执行yum -y remove mysql-5.0.45-7.el5直接卸载掉mysql-5.0.45-7.el5这个版本在configure就可以检测到mysql-5.1.31相关库文件了。
解决了sqlrelay编译的问题回头在执行python写的脚本发现无法连接mysql了,原来卸载掉mysql-5.0.45-7.el5之后MySQLdb依赖它也自然就无法使用了,这时只需要重新yum install -y MySQL-python安装一下就可以正常使用MySQLdb了。
其实在研究过路当中还发现一个不用卸载掉mysql-5.0.45-7.el5这个版本的方法,先执行which mysql找到mysql所在的路经(/usr/bin)然后rm -f /usr/bin/mysql*这时在configure发现也能正常检测到mysql-5.1.31相关库文件,并且MySQLdb也能正常使用。可以将rm操作改为mv操作把文件备份起来也许以后还会用到呢。

Recent Comments