由于需要解决mysql与redis同步的问题,在网上找了很多资料,也想了些解决方案,最终选择使用mysql2redis,这是个好东西。关于它的安装在网上找到了网友写的文章,对我帮助很大。不过安装中遇到了些问题,我会把问题和解决方法写一下。下面先把该文章的内容贴出来,其网址为:http://www.cnblogs.com/kgdxpr/p/4015394.html
CentOS6.4安装mysql2redis
1、安装apr
下载:http://apache.dataguru.cn//apr/apr-1.5.1.tar.gz
tar zxvf apr-1.5.1.tar.gz cd apr-1.5.1 vi configure 找到$RM “$cfgfile”这行删掉 ./configure --prefix=/usr/local/apr make make install
2、安装apr-util
下载:http://mirror.bit.edu.cn/apache//apr/apr-util-1.5.4.tar.gz
tar zxvf apr-util-1.5.4.tar.gz cd apr-util-1.5.4./configure --with-apr=/usr/local/apr make make install
3、安装hiredis
下载:https://github.com/redis/hiredis/archive/master.zip
解压后上传到服务器
cd hiredis-master make mkdir /usr/lib/hiredis cp libhiredis.so /usr/lib/hiredis cp libhiredis.so /usr/lib/ cp libhiredis.so /usr/lib64/ mkdir /usr/include/hiredis cp hiredis.h /usr/include/hiredis
4、安装lib_mysqludf_json
下载:https://github.com/mysqludf/lib_mysqludf_json/archive/master.zip
压后上传到服务器
cd lib_mysqludf_json-master rm lib_mysqludf_json.so gcc $(mysql_config --cflags) -shared -fPIC -o lib_mysqludf_json.so lib_mysqludf_json.c cp lib_mysqludf_json.so /usr/local/mysql/lib/plugin/
5、安装mysql2redis
下载:https://github.com/dawnbreaks/mysql2redis/archive/master.zip
压后上传到服务器
cd mysql2redis-master vi Makefile (替换如下代码) PLUGINDIR = "/usr/local/mysql/lib/plugin" INCLUDE=`/usr/local/mysql/bin/mysql_config --include` -I/usr/local/include -I/usr/local/apr/include -I./ LIBS=-lhiredis -L$(PLUGINDIR) -L/usr/local/apr/lib -lapr-1 -laprutil-1 compile: gcc -Werror -O2 -g $(INCLUDE) -I. -fPIC -shared -rdynamic lib_mysqludf_redis.c $(LIBS) -o lib_mysqludf_redis_v2.so install: gcc -Werror -O2 -g $(INCLUDE) -I. -fPIC -shared -rdynamic lib_mysqludf_redis.c \ $(LIBS) -o ${PLUGINDIR}/lib_mysqludf_redis_v2.so uninstall: rm -f $(PLUGINDIR)/lib_mysqludf_redis_v2.so clean: rm -f *~ rm -f *.so rm -f *.out 退出保存 make cp lib_mysqludf_redis_v2.so /usr/local/mysql/lib/plugin/
1、按照原文链接找不到apr及apr-util包;
解决方法:我在http://apr.apache.org/download.cgi中找到并下载了软件。
2、执行第5步,安装mysql2redis步骤中的,make命令时,编译报了2类错误,
a、缺少apu.h、apr_queue.h、apr_thread_pool.h;
解决方法:到网站https://apr.apache.org/docs/apr-util/1.4/files.html,找到缺少的文件后拷贝到/usr/local/apr目录。
b、错误内容:/usr/bin/ld: cannot find -laprutil-1
解决方法:原因是/usr/local/lib目录中缺少libaprutil-1.so文件,在/usr/local/apr-util/lib目录中找到该文件,并将其拷贝到相应目录。
最终编译成功,然后按前面的文章继续执行下面的步骤。之后,是安装udf。步骤如下:
1、进入mysql,执行mysql2redis-master.zip/test/install_json_udf.sql。
2、执行mysql2redis-master.zip/test/install_redis_udf.sql
3、参考mysql2redis-master.zip/test/test_redis_udf.sql的内容,在mysql中设置redis中的数据;然后在redis客户端中读取该数据;若能读取正确数据说明安装成功。
再附一篇相关文章:
文章出处:http://blog.csdn.net/osoon/archive/2010/04/25/5526455.aspx
通常在软件编译时出现的usr/bin/ld: cannot find -lxxx的错误,主要的原因是库文件并没有导入的ld检索目录中。
解决方式:
1. 确认库文件是否存在,比如-l123, 在/usr/lib, /usr/local/lib,或者其他自定义的lib下有无lib123.so, 如果只是存在lib123.so.1,那么可以通过ln -sv lib123.so.1 lib123.so,建立一个连接重建lib123.so.
2. 检查/etc/ld.so.conf中的库文件路径是否正确,如果库文件不是使用系统路径,/usr/lib, /usr/local/lib, 那么必须在文件中加入.
3. ldconfig 重建ld.so.cache文件,ld的库文件检索目录存放文件。尤其刚刚编译安装的软件,必须运行ldconfig,才能将新安装的库文件导入ld.so.cache.
4. 测试,gcc -l123 --verbose.
通常在软件编译时出现的usr/bin/ld: cannot find -lxxx的错误,主要的原因是库文件并没有导入的ld检索目录中。
解决方式:
1. 确认库文件是否存在,比如-l123, 在/usr/lib, /usr/local/lib,或者其他自定义的lib下有无lib123.so, 如果只是存在lib123.so.1,那么可以通过ln -sv lib123.so.1 lib123.so,建立一个连接重建lib123.so.
2. 检查/etc/ld.so.conf中的库文件路径是否正确,如果库文件不是使用系统路径,/usr/lib, /usr/local/lib, 那么必须在文件中加入.
3. ldconfig 重建ld.so.cache文件,ld的库文件检索目录存放文件。尤其刚刚编译安装的软件,必须运行ldconfig,才能将新安装的库文件导入ld.so.cache.
4. 测试,gcc -l123 --verbose.