- 浏览: 92941 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 796目录 一 Codd的RDBMS12法则——RDBMS的起源 ... -
MySQL数据库服务器端核心参数详解和推荐配置3
2013-03-19 14:31 736l innodb_flush_log_at_trx_com ... -
MySQL数据库服务器端核心参数详解和推荐配置2
2013-03-19 14:29 857l innodb_commit_concurrency ... -
MySQL数据库服务器端核心参数详解和推荐配置1
2013-03-19 14:24 812l lower_case_table_names Li ... -
MySQL5.5数据库my.cnf配置文件模板
2013-03-19 13:46 1026引用 #*******以下开始为配置文件模板 [mysqld ... -
MySQL5.5数据库my.cnf配置文件模板
2013-03-19 13:40 0#*******以下开始为配置文件模板 [mysqld] ... -
mysql5.6memcache安装
2013-03-15 16:14 941下载地址: http://labs.mysql.com 选 ... -
MySQL常用存储引擎优化
2013-01-07 15:49 1047MySQL 提供的非常丰富的存储引擎种类供大家选择,有多种 ... -
SQL执行过程原理
2012-11-13 15:23 785如下图: http://dl.iteye.com/upload ... -
innotop
2012-10-10 20:13 767INNOTOP是一个通过文本模 ... -
mysql中用percona-toolkit监视死锁
2012-10-10 15:27 837percona,是mysql的一个分支了,相信不少朋友都很熟悉 ... -
MYSQL 5.6新特性介绍
2012-10-10 15:09 1139官方参考: http://dev.mysql.com/doc/ ... -
MySQL NDB 安装的安装,配置与测试
2012-02-17 16:50 1400MySQL NDB 安装的安装,配置与测试 MySQL NDB ... -
初识mysql插件之HandlerSocket
2011-12-30 15:35 1201HandlerSocket是日本人写的一个mysql插件,具体 ... -
快速关闭MySQL/InnoDB
2011-11-13 20:35 859如果用的引擎是InnoDB,每次敲下mysqladmin -u ...
相关推荐
MySQL 5.6是MySQL数据库管理系统的一个重要版本,它在2013年发布,带来了许多新特性和性能提升。这个“mysql5.6安装文件-完美”压缩包包含的是MySQL 5.6的安装程序,即“mysql-installer-community-5.6.10.1.msi”,...
这个“mysql5.6-rpm.rar”压缩包包含的是针对Linux系统的RPM(Red Hat Package Manager)安装包,使得用户可以通过YUM(Yellowdog Updater, Modified)工具便捷地安装和管理MySQL 5.6。 MySQL数据库是一个开源的...
MySQL 5.6是MySQL数据库管理系统的一个重要版本,它带来了许多性能提升、功能增强和安全性改进。这个版本的说明文档详细地介绍了这些变化和新特性,对于开发人员、数据库管理员以及对MySQL感兴趣的人来说,是非常...
MySQL 5.6是MySQL数据库管理系统的一个重要版本,它带来了许多增强特性和性能优化,旨在提升数据库的稳定性和效率。MySQL是一种广泛使用的开源关系型数据库系统,尤其在Web应用程序中非常流行。以下是对MySQL 5.6...
MySQL 5.6是MySQL关系型数据库管理系统的一个重要版本,...在下载的“mysql数据库软件”压缩包中,包含了安装和配置MySQL 5.6所需的所有文件,用户可以根据具体需求进行安装和设置,享受这个强大数据库系统带来的便利。
总之,这个压缩包提供了在Windows环境中安装和运行MySQL 5.6所需的所有组件,包括数据库服务器、必要的运行时库以及安装程序。用户只需解压并按照步骤安装,即可开始使用这个强大的数据库系统。
MySQL Server 5.6是MySQL数据库管理系统的一个重要版本,它以其高效、稳定和开源的特点深受开发者喜爱。这个“绿色版”通常指的是免安装版本,它无需通过标准的安装过程即可在计算机上运行,使得用户可以更方便快捷...
1. **InnoDB存储引擎增强**:MySQL 5.6中的InnoDB存储引擎得到了显著优化,包括支持多线程插入缓冲、自适应哈希索引、更快的行锁定以及更好的事务处理能力。这使得InnoDB在处理并发事务和大数据量时表现更出色。 2....
下载的`.tar.gz`文件包含了编译和安装MySQL 5.6.15所需的所有源代码和文档。解压后,你需要遵循一系列步骤来编译和配置MySQL,这通常包括配置选项设置、编译、安装以及初始化数据库。在Linux系统中,这些步骤可能...
MySQL Server 5.6是MySQL数据库管理系统的一个重要版本,它在2013年发布,提供了许多增强功能和性能优化,对于开发者来说是至关重要的工具。这个压缩包包含的是MySQL Server 5.6的库文件,而非完整的安装程序,因此...
关系数据库和NoSQL数据库操作比较实验报告 实验目的:了解四种数据库(MySQL、HBase、Redis、MongoDB)的概念和不同点,熟悉使用四种数据库操作常用的Shell命令和Java API。 实验平台:Linux操作系统,Hadoop版本...
MySQL的高性能得益于InnoDB存储引擎的性能提升,包括增强了内部缓冲池结构以减少缓存热点问题,改进了I/O压缩操作以及优化了数据页的读取和写入。这些改进大大提高了读写性能,特别是对于高并发的场景。 复制方面,...
10. **JSON Support**:虽然不是在 5.6.10 版本中引入,但 MySQL 5.6 系列开始支持 JSON 数据类型,为 NoSQL 风格的数据存储提供了可能。 通过研究 MySQL 5.6.10 的源代码,开发者可以深入了解其内部工作原理,学习...
### MySQL 5.7 安装到主从配置到生产环境高可用 MHA 部署 #### 一、MySQL 分支与版本介绍 MySQL 是一个广泛使用的开源关系型数据库管理系统,由于其开源特性,衍生出了多种兼容版本,主要包括: 1. **MariaDB**:...
- **NoSQL数据库**:尽管NoSQL数据库在某些场景下有优势,但其稳定性和成熟度尚待验证。 #### 总结 - 运行环境对MySQL和InnoDB的性能有着至关重要的影响。 - MySQL与InnoDB正在持续改进以提升性能。 - 云计算并不...
在本文中,我们详细介绍了如何安装和配置 Redis 主从服务器,以实现高可用性和高性能的缓存系统。Redis 作为一个 NoSQL 型数据库,具有高性能、高扩展性和高可靠性的特点。通过 PHP 环境连接 Redis,可以轻松地使用 ...
6.8.3.0可能引入了对新的MySQL服务器功能的支持,例如NoSQL API(如JSON数据类型),更强大的并发处理,以及对InnoDB存储引擎的增强。此外,性能和稳定性方面的提升也是这一版本的重点,包括更快的连接速度、更高效...
MySQL 5.6版本增加了多项特性,如在线DDL(数据定义语言)操作、复制全局事务标识、无崩溃从机、多线程从机、对InnoDB的NoSQL访问等,以及性能上的显著提升。这些改进使得MySQL 5.6版本更适合用于下一代Web、嵌入式...
在本次实验中,我们将学习如何在Linux环境下,以伪分布式的方式安装和配置HBase,以及验证其安装是否成功。 一、实验目标 1. 掌握HBase的伪分布式安装过程。 2. 验证HBase的安装是否成功。 3. 使用Web UI管理界面...