- 浏览: 88596 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
xiaoyi829:
应该可以grzrt 写道分区表partition,能用hand ...
初识mysql插件之HandlerSocket -
grzrt:
分区表partition,能用handlersocket查询指 ...
初识mysql插件之HandlerSocket
一些可以参考的文章:
http://blogs.innodb.com/wp/2011/04/get-started-with-innodb-memcached-daemon-plugin/
http://blogs.innodb.com/wp/2011/04/nosql-to-innodb-with-memcached/
http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached-setup.html
http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached-replication.html
本文使用 mysql-5.6.6-m9-linux2.6-x86_64.tar.gz.
下面是简要的安装过程:
最好是把SELINUX给关了,否则下面都有可能会报错。
安装mysql5.6.6
wget http://dev.mysql.com/GET/Downloads/MySQL-5.6/mysql-5.6.6-m9-linux2.6-x86_64.tar.gz/FROM/http://cdn.mysql.com/
tar -vxzf mysql-5.6.6-m9-linux2.6-x86_64.tar.gz
cd mysql-5.6.6-m9-linux2.6-x86_64
可以看一下安装文档:
more INSTALL-BINARY
./scripts/mysql_install_db --user=mysql
/etc/init.d/mysql START
memcached需要安装Libevent
# rpm -qa | grep libevent
libevent-headers-1.4.13-4.el6.noarch
libevent-1.4.13-4.el6.x86_64
libevent-devel-1.4.13-4.el6.x86_64
libevent-doc-1.4.13-4.el6.noarch
接下来安装mysql memcached的plugin:
修改my.cnf,顺便添加一个server_id:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
plugin_dir=/var/lib/mysql-5.6.6-m9-linux2.6-x86_64/lib/plugin
innodb_api_enable_binlog=1
server_id = 1
确认一下:
mysql> SELECT @@plugin_dir;
+-----------------------------------------------------+
| @@plugin_dir |
+-----------------------------------------------------+
| /var/lib/mysql-5.6.6-m9-linux2.6-x86_64/lib/plugin/ |
+-----------------------------------------------------+
1 ROW IN SET (0.00 sec)
运行必须的sql文件,会创建 test.demo_test表。
cd mysql-5.6.6-m9-linux2.6-x86_64/lib/scripts/
mysql -p < innodb_memcached_config.SQL
安装插件:
mysql> install plugin daemon_memcached SONAME 'libmemcached.so';
安装完成,来测试一下。
用SQL语句向demo_test中写入数据:
# mysql -p
Server version: 5.6.6-m9-log MySQL Community Server (GPL)
mysql> USE test
mysql> TRUNCATE demo_test;
mysql> INSERT INTO demo_test VALUES ('AA','TEST VIA SQL',1,1,1);
Query OK, 1 ROW affected (0.00 sec)
mysql> SELECT * FROM demo_test;
+----+--------------+------+------+------+
| c1 | c2 | c3 | c4 | c5 |
+----+--------------+------+------+------+
| AA | TEST VIA SQL | 1 | 1 | 1 |
+----+--------------+------+------+------+
1 ROW IN SET (0.01 sec)
使用memcached协议来写入新数据:
# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected TO 127.0.0.1.
Escape CHARACTER IS '^]'.
SET memc 10 0 9
memcached
STORED
GET memc
VALUE memc 10 9
memcached
END
看起来挺正常的:
mysql> SELECT * FROM demo_test;
+------+--------------+------+------+------+
| c1 | c2 | c3 | c4 | c5 |
+------+--------------+------+------+------+
| AA | TEST VIA SQL | 1 | 1 | 1 |
| memc | memcached | 10 | 5 | 0 |
+------+--------------+------+------+------+
2 ROWS IN SET (0.00 sec)
假设已经做好了主从镜像,测试一下nosql在主从的环境中是否有问题:
主服务器的初始数据如下:
MySQL_Master >SELECT * FROM demo_test;
+------+--------------+------+------+------+
| c1 | c2 | c3 | c4 | c5 |
+------+--------------+------+------+------+
| AA | TEST VIA SQL | 1 | 1 | 1 |
| memc | memcached | 10 | 5 | 0 |
+------+--------------+------+------+------+
使用memcached协议来更新一下数据:
# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected TO 127.0.0.1.
Escape CHARACTER IS '^]'.
SET memc 12 0 10
replicated
STORED
GET memc
VALUE memc 12 10
replicated
END
主服务器的数据正常,已经被更新了:
MySQL_Master >SELECT * FROM demo_test;
+------+--------------+------+------+------+
| c1 | c2 | c3 | c4 | c5 |
+------+--------------+------+------+------+
| AA | TEST VIA SQL | 1 | 1 | 1 |
| memc | replicated | 12 | 2 | 0 |
+------+--------------+------+------+------+
从服务器还是旧的数据。。。
MySQL Slave > SELECT * FROM demo_test;
+------+--------------+------+------+------+
| c1 | c2 | c3 | c4 | c5 |
+------+--------------+------+------+------+
| AA | TEST VIA SQL | 1 | 1 | 1 |
| memc | memcached | 10 | 5 | 0 |
+------+--------------+------+------+------+
Error executing row event: ‘Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.’
看来只能把binlog_formaty调整为MIXED了。。。:
MySQL Slave > SET GLOBAL binlog_format = 'MIXED';
这点要注意到。
http://blogs.innodb.com/wp/2011/04/get-started-with-innodb-memcached-daemon-plugin/
http://blogs.innodb.com/wp/2011/04/nosql-to-innodb-with-memcached/
http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached-setup.html
http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached-replication.html
本文使用 mysql-5.6.6-m9-linux2.6-x86_64.tar.gz.
下面是简要的安装过程:
最好是把SELINUX给关了,否则下面都有可能会报错。
安装mysql5.6.6
wget http://dev.mysql.com/GET/Downloads/MySQL-5.6/mysql-5.6.6-m9-linux2.6-x86_64.tar.gz/FROM/http://cdn.mysql.com/
tar -vxzf mysql-5.6.6-m9-linux2.6-x86_64.tar.gz
cd mysql-5.6.6-m9-linux2.6-x86_64
可以看一下安装文档:
more INSTALL-BINARY
./scripts/mysql_install_db --user=mysql
/etc/init.d/mysql START
memcached需要安装Libevent
# rpm -qa | grep libevent
libevent-headers-1.4.13-4.el6.noarch
libevent-1.4.13-4.el6.x86_64
libevent-devel-1.4.13-4.el6.x86_64
libevent-doc-1.4.13-4.el6.noarch
接下来安装mysql memcached的plugin:
修改my.cnf,顺便添加一个server_id:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
plugin_dir=/var/lib/mysql-5.6.6-m9-linux2.6-x86_64/lib/plugin
innodb_api_enable_binlog=1
server_id = 1
确认一下:
mysql> SELECT @@plugin_dir;
+-----------------------------------------------------+
| @@plugin_dir |
+-----------------------------------------------------+
| /var/lib/mysql-5.6.6-m9-linux2.6-x86_64/lib/plugin/ |
+-----------------------------------------------------+
1 ROW IN SET (0.00 sec)
运行必须的sql文件,会创建 test.demo_test表。
cd mysql-5.6.6-m9-linux2.6-x86_64/lib/scripts/
mysql -p < innodb_memcached_config.SQL
安装插件:
mysql> install plugin daemon_memcached SONAME 'libmemcached.so';
安装完成,来测试一下。
用SQL语句向demo_test中写入数据:
# mysql -p
Server version: 5.6.6-m9-log MySQL Community Server (GPL)
mysql> USE test
mysql> TRUNCATE demo_test;
mysql> INSERT INTO demo_test VALUES ('AA','TEST VIA SQL',1,1,1);
Query OK, 1 ROW affected (0.00 sec)
mysql> SELECT * FROM demo_test;
+----+--------------+------+------+------+
| c1 | c2 | c3 | c4 | c5 |
+----+--------------+------+------+------+
| AA | TEST VIA SQL | 1 | 1 | 1 |
+----+--------------+------+------+------+
1 ROW IN SET (0.01 sec)
使用memcached协议来写入新数据:
# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected TO 127.0.0.1.
Escape CHARACTER IS '^]'.
SET memc 10 0 9
memcached
STORED
GET memc
VALUE memc 10 9
memcached
END
看起来挺正常的:
mysql> SELECT * FROM demo_test;
+------+--------------+------+------+------+
| c1 | c2 | c3 | c4 | c5 |
+------+--------------+------+------+------+
| AA | TEST VIA SQL | 1 | 1 | 1 |
| memc | memcached | 10 | 5 | 0 |
+------+--------------+------+------+------+
2 ROWS IN SET (0.00 sec)
假设已经做好了主从镜像,测试一下nosql在主从的环境中是否有问题:
主服务器的初始数据如下:
MySQL_Master >SELECT * FROM demo_test;
+------+--------------+------+------+------+
| c1 | c2 | c3 | c4 | c5 |
+------+--------------+------+------+------+
| AA | TEST VIA SQL | 1 | 1 | 1 |
| memc | memcached | 10 | 5 | 0 |
+------+--------------+------+------+------+
使用memcached协议来更新一下数据:
# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected TO 127.0.0.1.
Escape CHARACTER IS '^]'.
SET memc 12 0 10
replicated
STORED
GET memc
VALUE memc 12 10
replicated
END
主服务器的数据正常,已经被更新了:
MySQL_Master >SELECT * FROM demo_test;
+------+--------------+------+------+------+
| c1 | c2 | c3 | c4 | c5 |
+------+--------------+------+------+------+
| AA | TEST VIA SQL | 1 | 1 | 1 |
| memc | replicated | 12 | 2 | 0 |
+------+--------------+------+------+------+
从服务器还是旧的数据。。。
MySQL Slave > SELECT * FROM demo_test;
+------+--------------+------+------+------+
| c1 | c2 | c3 | c4 | c5 |
+------+--------------+------+------+------+
| AA | TEST VIA SQL | 1 | 1 | 1 |
| memc | memcached | 10 | 5 | 0 |
+------+--------------+------+------+------+
Error executing row event: ‘Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.’
看来只能把binlog_formaty调整为MIXED了。。。:
MySQL Slave > SET GLOBAL binlog_format = 'MIXED';
这点要注意到。
发表评论
-
给开发者看的关系型数据库设计
2013-08-06 11:17 736目录 一 Codd的RDBMS12法则——RDBMS的起源 ... -
MySQL数据库服务器端核心参数详解和推荐配置3
2013-03-19 14:31 704l innodb_flush_log_at_trx_com ... -
MySQL数据库服务器端核心参数详解和推荐配置2
2013-03-19 14:29 821l innodb_commit_concurrency ... -
MySQL数据库服务器端核心参数详解和推荐配置1
2013-03-19 14:24 772l lower_case_table_names Li ... -
MySQL5.5数据库my.cnf配置文件模板
2013-03-19 13:46 967引用 #*******以下开始为配置文件模板 [mysqld ... -
MySQL5.5数据库my.cnf配置文件模板
2013-03-19 13:40 0#*******以下开始为配置文件模板 [mysqld] ... -
mysql5.6memcache安装
2013-03-15 16:14 908下载地址: http://labs.mysql.com 选 ... -
MySQL常用存储引擎优化
2013-01-07 15:49 956MySQL 提供的非常丰富的存储引擎种类供大家选择,有多种 ... -
SQL执行过程原理
2012-11-13 15:23 750如下图: http://dl.iteye.com/upload ... -
innotop
2012-10-10 20:13 736INNOTOP是一个通过文本模 ... -
mysql中用percona-toolkit监视死锁
2012-10-10 15:27 800percona,是mysql的一个分支了,相信不少朋友都很熟悉 ... -
MYSQL 5.6新特性介绍
2012-10-10 15:09 1105官方参考: http://dev.mysql.com/doc/ ... -
MySQL NDB 安装的安装,配置与测试
2012-02-17 16:50 1358MySQL NDB 安装的安装,配置与测试 MySQL NDB ... -
初识mysql插件之HandlerSocket
2011-12-30 15:35 1114HandlerSocket是日本人写的一个mysql插件,具体 ... -
快速关闭MySQL/InnoDB
2011-11-13 20:35 823如果用的引擎是InnoDB,每次敲下mysqladmin -u ...
相关推荐
在此基础上,MySQL 5.6 进行了全方位的改进,旨在让富于创新的 DBA 和开发人员能够在最新一代的开发框架和硬件平台上创建和部署下一代 Web、嵌入式和云计算/SaaS/DaaS 之应用程序。 简而言之,MySQL 5.6 只是 MySQL ...
nosql实验一-HBase的安装与配置
MySQL Connector/Python Revealed: SQL and NoSQL Data Storage Using MySQL for Python Programmers By 作者: Jesper Wisborg Krogh ISBN-10 书号: 1484236939 ISBN-13 书号: 9781484236932 Edition 版本: 1st ed...
A.4实验四:NoSQL和关系数据库的操作比较 本实验对应第6章的内容。 A.4.1实验目的 (1)理解4种数据库(MySQL、HBase,Redis和 MongoDB)的概念及不同点。(2)熟练使用4种数据库操作常用的 Shell命令。 (3)熟悉4种...
2、innodb存储引擎 >=5.5 版本中默认的存储引擎,MySql推荐使用的存储引擎。提供事务,行级锁定,存储引擎。 事务安全型存储引擎,更加注重数据的完整性和安全性。 (1)存储格式: innodb存储引擎 每个数据表有...
NoSQL之Redis主从复制集群部署.pdf
:在众多NoSQL数据库的轰炸下,身为数据工作者的你肯定在做是否迁移的考虑。而迁移后所面对的操作方式转换也是重点考虑的之一,...:如果你有一个建立在MySQL上的数据库,你可能就会考虑是否需要以及更重要的如何
本书在紧贴实用的示例的引导下,介绍Oracle NoSQL数据库的安装、配置、应用程序开发、容量规划、容量调节以及与其他企业级数据中心产品的集成等主题。 本书主要内容 ● 了解Oracle NoSQL数据库架构及其底层数据...
NoSql mongoDB安装文件
Java面试题合集(javaee,spring,springmvc,springboot,mybatis,mysql,nosql,redis)
nosqlbooster4mongo-4.5.4 NoSQL Manager for MongoDB Pro
随着Web2.0和云计算的兴起,和一些反SQL的倡导,越来越多的大公司加入到NoSQL阵营。Digg、Twitter、Google、微软等等公司已经开始研究NoSQL,并在一些项目中进行实施。许多人甚至抛弃了MySQL开源数据库这个长期以来...
2012年:MySQL 5.6发布,带来了全文搜索、NoSQL接口和多线程复制等新特性。 2013年:MySQL 5.7发布,加入了JSON数据类型、有效地调整排序缓存和更好的性能优化等。 2018年:MySQL 8.0发布,提供窗口函数、变量范围和...
【Java学习+面试学习库】更新Mysql,NoSql,Java,消息队列,微服务等知识
用于记录在工作和学习过程中积累的数据库使用知识和应用经验,重点为 Oracle 和 MySQL 以及其他 NoSQL
NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。虽然NoSQL流行语火起来才短短一年的时间,但是不可否认,现在已经开始了第二代运动。尽管早期的堆栈代码只能算是一种...
第1章 MySQL简介及安装 第2章 MySQL基础管理 第3章 SQL语句基础应用 第4章 索引的基本管理 第5章 存储引擎 第6章 日志管理 第7章 备份恢复 第8章 主从复制基础 第9章 主从复制高级进阶 第10章 MyCAT中间件实战 第11...
oracle nosql安装、管理、开发和维护相关的文档集合
1.mysql主从配置 2.对mysql binlog(row) parser 这一步交给canal 3.MQ对解析后binlog增量数据的推送 4.对MQ数据的消费(接收+数据解析,考虑消费速度,MQ队列的阻塞) 5.数据写入/修改到nosql (redis的主从/hash分...
MySQL 8 带来了全新的体验,比如支持 NoSQL、JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升。本文讲解如何在 Windows 下安装 MySQL 8,以及基本的 MySQL 用法。 下载 下载地址 本例为:MySQL Community Server ...