`

mysql5.6 Nosql, innodb 安装和配置以及主从镜像模式下可能产生的问题

 
阅读更多
一些可以参考的文章:

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';
这点要注意到。
分享到:
评论

相关推荐

    mysql5.6安装文件-完美

    MySQL 5.6是MySQL数据库管理系统的一个重要版本,它在2013年发布,带来了许多新特性和性能提升。这个“mysql5.6安装文件-完美”压缩包包含的是MySQL 5.6的安装程序,即“mysql-installer-community-5.6.10.1.msi”,...

    mysql5.6-rpm.rar

    这个“mysql5.6-rpm.rar”压缩包包含的是针对Linux系统的RPM(Red Hat Package Manager)安装包,使得用户可以通过YUM(Yellowdog Updater, Modified)工具便捷地安装和管理MySQL 5.6。 MySQL数据库是一个开源的...

    mysql5.6版本说明文档

    MySQL 5.6是MySQL数据库管理系统的一个重要版本,它带来了许多性能提升、功能增强和安全性改进。这个版本的说明文档详细地介绍了这些变化和新特性,对于开发人员、数据库管理员以及对MySQL感兴趣的人来说,是非常...

    mysql5.6说明文档

    MySQL 5.6是MySQL数据库管理系统的一个重要版本,它带来了许多增强特性和性能优化,旨在提升数据库的稳定性和效率。MySQL是一种广泛使用的开源关系型数据库系统,尤其在Web应用程序中非常流行。以下是对MySQL 5.6...

    mysql5.6数据库软件

    MySQL 5.6是MySQL关系型数据库管理系统的一个重要版本,...在下载的“mysql数据库软件”压缩包中,包含了安装和配置MySQL 5.6所需的所有文件,用户可以根据具体需求进行安装和设置,享受这个强大数据库系统带来的便利。

    mysql5.6安装包+运行库.zip

    总之,这个压缩包提供了在Windows环境中安装和运行MySQL 5.6所需的所有组件,包括数据库服务器、必要的运行时库以及安装程序。用户只需解压并按照步骤安装,即可开始使用这个强大的数据库系统。

    MySQL Server 5.6绿色版 免安装

    MySQL Server 5.6是MySQL数据库管理系统的一个重要版本,它以其高效、稳定和开源的特点深受开发者喜爱。这个“绿色版”通常指的是免安装版本,它无需通过标准的安装过程即可在计算机上运行,使得用户可以更方便快捷...

    mysql-5.6.51-winx64.zip

    1. **InnoDB存储引擎增强**:MySQL 5.6中的InnoDB存储引擎得到了显著优化,包括支持多线程插入缓冲、自适应哈希索引、更快的行锁定以及更好的事务处理能力。这使得InnoDB在处理并发事务和大数据量时表现更出色。 2....

    mysql-5.6.15.tar.gz

    下载的`.tar.gz`文件包含了编译和安装MySQL 5.6.15所需的所有源代码和文档。解压后,你需要遵循一系列步骤来编译和配置MySQL,这通常包括配置选项设置、编译、安装以及初始化数据库。在Linux系统中,这些步骤可能...

    MySQL Server 5.6.zip

    MySQL Server 5.6是MySQL数据库管理系统的一个重要版本,它在2013年发布,提供了许多增强功能和性能优化,对于开发者来说是至关重要的工具。这个压缩包包含的是MySQL Server 5.6的库文件,而非完整的安装程序,因此...

    数据存储实验4-NoSQL和关系数据库的操作比较.doc(实验报告)

    关系数据库和NoSQL数据库操作比较实验报告 实验目的:了解四种数据库(MySQL、HBase、Redis、MongoDB)的概念和不同点,熟悉使用四种数据库操作常用的Shell命令和Java API。 实验平台:Linux操作系统,Hadoop版本...

    2013年中国数据库大会-29-Developer and DBA Guide to Whats New in MySQL 5.6

    MySQL的高性能得益于InnoDB存储引擎的性能提升,包括增强了内部缓冲池结构以减少缓存热点问题,改进了I/O压缩操作以及优化了数据页的读取和写入。这些改进大大提高了读写性能,特别是对于高并发的场景。 复制方面,...

    Mysql5.6.10源代码

    10. **JSON Support**:虽然不是在 5.6.10 版本中引入,但 MySQL 5.6 系列开始支持 JSON 数据类型,为 NoSQL 风格的数据存储提供了可能。 通过研究 MySQL 5.6.10 的源代码,开发者可以深入了解其内部工作原理,学习...

    MySql5.7安装到主从配置到生产环境高可用MHA部署

    ### MySQL 5.7 安装到主从配置到生产环境高可用 MHA 部署 #### 一、MySQL 分支与版本介绍 MySQL 是一个广泛使用的开源关系型数据库管理系统,由于其开源特性,衍生出了多种兼容版本,主要包括: 1. **MariaDB**:...

    MySQL 和 InnoDB 性能

    - **NoSQL数据库**:尽管NoSQL数据库在某些场景下有优势,但其稳定性和成熟度尚待验证。 #### 总结 - 运行环境对MySQL和InnoDB的性能有着至关重要的影响。 - MySQL与InnoDB正在持续改进以提升性能。 - 云计算并不...

    redis 主从服务器配置

    在本文中,我们详细介绍了如何安装和配置 Redis 主从服务器,以实现高可用性和高性能的缓存系统。Redis 作为一个 NoSQL 型数据库,具有高性能、高扩展性和高可靠性的特点。通过 PHP 环境连接 Redis,可以轻松地使用 ...

    MySql.Data.dll (5和6)

    6.8.3.0可能引入了对新的MySQL服务器功能的支持,例如NoSQL API(如JSON数据类型),更强大的并发处理,以及对InnoDB存储引擎的增强。此外,性能和稳定性方面的提升也是这一版本的重点,包括更快的连接速度、更高效...

    CentOS6.0_x86_64下安装mysql-5.6.10详解配置文档

    MySQL 5.6版本增加了多项特性,如在线DDL(数据定义语言)操作、复制全局事务标识、无崩溃从机、多线程从机、对InnoDB的NoSQL访问等,以及性能上的显著提升。这些改进使得MySQL 5.6版本更适合用于下一代Web、嵌入式...

    nosql实验一-HBase的安装与配置.docx

    在本次实验中,我们将学习如何在Linux环境下,以伪分布式的方式安装和配置HBase,以及验证其安装是否成功。 一、实验目标 1. 掌握HBase的伪分布式安装过程。 2. 验证HBase的安装是否成功。 3. 使用Web UI管理界面...

Global site tag (gtag.js) - Google Analytics