安装memcache_engine

来源:百度文库 编辑:神马文学网 时间:2024/07/02 18:28:17

启动memcachedb:

use "-h" option to get started.

Running Examples:
1. run as a single daemon
  memcachedb -p21201 -d -r -u root -H ./env -N -v
2. run as a replicated group
  start a master (read&write):
    memcachedb -p21201 -d -r -u root -H ./env1 -N -R 127.0.0.1:31201 -M
  then, start a replcas (read-only):
    memcachedb -p21202 -d -r -u root -H ./env2 -N -R 127.0.0.1:31202 -O 127.0.0.1:31201 -S



一开始安装memcache_engine,报找不到mysql源码:
1. 安装缺少mysqlsrc
 下载了mysql的src.rpm,MySQL-community-5.1.39-0.rhel4.src.rpm   在/usr/src/redhat/SPECS中多了一个文件: mysql-5.1.39.rhe14.spec  同时在: /usr/src/redhat/SOURCES中,多了一个mysql-5.1.39.tar.gz,这个解压出来就是源码;  2.再次安装
  这次走了比较多了,还是有问题:    config error: Package requirements (libmemcached >=0.8, libxml-2.0>=2.6.29, libxmlrow>=0.2) were not met:   调整: PKG_CONFIG_PATH     或者调整环境变量: DEPS_CFLAGS, DEPS_LIBS  3. 按照外面的安装说明,进行安装(http://blog.s135.com/post/357/):
安装:libmemcached-0.34:比网上说明中的新
安装的时候,报找不到memcached的binary程序: “could not find memcached binary"
把memcached程序放在PATH路径中,再进行configuare ---- 这个说明先要安装memcached,才能安装这个lib,自己安装的是memcachedb
缺省的安装在/usr/local中,重新进行config,和网上的说明安装在同一个目录中,减少以后的问题。 ./configure --prefix=/usr/local/memcache_engine  

安装: libxml2-2.7.6.tar.gz 安装在同一个目录中,这个make的时间比较长 安装:libxmlrow-0.2.tar.gz 这个版本网上没有最新的。 直接用上面的config有些问题:要调整以下内容 export PKG_CONFIG_PATH=/usr/local/memcache_engine/lib/pkgconfig/ ./configure --prefix=/usr/local/memcache_engine

安装:memcache_engine-0.7.tar.gz 看网上的安装文档,有这么一处: sed -i "s#uint16_t#uint32_t#g" ./src/ha_memcache.cc 把uint16改成uint32,不知道为何 --- ? 由于继续在刚才的屏幕上进行操作, export PKG_CONFIG_PATH=/usr/local/memcache_engine/lib/pkgconfig/ 没有重新输入 ./configure --prefix=/usr/local/memcache_engine --with-mysql=/usr/src/redhat/SOURCES/.... make时候出错。说是mysql源码中有问题 --- 这个说明使用到的mysqal 源码要和系统中的mysql匹配
把mysql重新编译一次,再运行engine的make就没有问题了。
拷贝libmemcache_engine.so到MySQL默认插件目录(假设MySQL安装在/usr/local/mysql目录下)在:lib/mysql/plugin/ 中
新安装的mysql5.1.39启动有些问题(其实就是下面客户端连接不上的问题),把libmemcache_engine.so放到原来的5.1.34版本中,发觉安装不上。
解决mysql5.1.39的问题,启动没有问题,把/usr/local/mysql指向新的mysql5.1.39目录即可,但是mysql连接不上,查资料, 修改配置文件:/etc/my.cnf[mysqld]   socket=/var/lib/mysql.sock   改一下就好了,但也会引起其他的问题,如mysql程序连不上了,再加一点:   [mysql]   socket=/tmp/mysql.sock 
增加了[mysql]这一项,其中的socket配置和mysqld中的一样。
启动用: service mysql start, 调用/etc/rc.d/init中的mysql脚本
增加了这个配置,mysql就可以连接上mysql服务器了(其实服务器不用重启)。
通过INSTALL PLUGIN memcache SONAME 'libmemcache_engine.so';
SELECT * FROM mysql.plugin;SHOW PLUGINS;可以找到memcache插件,
CREATE TABLE `table` (`id` int(11) NOT NULL DEFAULT '0',`a` int(11) DEFAULT NULL,`b` int(11) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=MEMCACHE DEFAULT CHARSET=latin1CONNECTION='localhost:11211';也没有问题

memcachedb没有开,报引擎故障,打开就可以了。
问题: 插入几条记录,都很好,但是查不到,mysql中查不到:发觉犯了一个错误,只能根据主键查询:原来用:select * from test_table, 没有结果,用 select * from test_table where id=1,结果马上就出来。
使用的限制:1、Memcache表必须有主键。2、只能使用主键去查询,即只能使用SELECT ... FROM ... WHERE id = ... 方式去查询。3、不支持自增ID。