MySQL5.6上安装memcached插件
我是基础设施团队的 Saito。
最近我沉迷于 awscli 命令。
那么,您使用过
memcached (发音:mem-cash-dee memcached 是一个通用的分布式缓存系统。
用于通过在 RAM 中缓存数据和对象来减少数据库负载并加速动态应用程序
2016 年 3 月 22 日是 memcached 推出的第 13 个年头。
memcached 一定会成为您的强大盟友。
*顺便说一句,我喜欢Redis
我们将在 MySQL5.6 上安装 memcached 插件,
假设您通过 ssh 连接到服务器 (使用AWS RDS,memcached插件可以作为一个选项安装,所以很简单......)
安装 MySQL 5.6 版本
首先,让我们安装 MySQL 存储库。
wget http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm -P /usr/local/src cd /usr/local/src yum -y install mysql-community-release -el6-5.noarch.rpm
接下来,安装 MySQL 服务器。各种调整(/etc/my.cnf)将被省略。
yum -y 安装 mysql-community-server
启动MySQL
/etc/init.d/mysqld 启动
我认为到目前为止一切都很好。启动后,将显示[确定]。
准备必要的文件
现在,检查
innodb_memcached_config.sql 搜索时,最好使用locate 命令。
$ 定位 innodb_memcached_config.sql /usr/share/mysql/innodb_memcached_config.sql
有。这次我们需要这个.sql 文件。
笔记
现在,如果您在此处的步骤中犯了错误,您就会上瘾。
这是因为 MySQL 5.6 中报告了一个错误。
您的 MySQL 服务器上是否有
名为 test 的数据库如果您没有,请务必制作一个。
mysql> 显示数据库;mysql> 创建数据库测试;
如果这里没有准备一个名为test的DB,稍后会出现错误。
导入数据库和表
然后在MySQL控制台上
mysql> 源 /usr/share/mysql/innodb_memcached_config.sql
或者在外壳上
$ mysql < /usr/share/mysql/innodb_memcached_config.sql
让我们进入吧。
如果您在没有创建名为 test 的数据库的情况下运行它,配置将会失败。
(您需要编辑sql文件才能恢复)
$ mysql < /usr/share/mysql/innodb_memcached_config.sql
如果我运行下面的命令,它也会失败,但是如果我在创建 testDB 后再次运行它,它就会被修复。
mysql> 源 /usr/share/mysql/innodb_memcached_config.sql
MySQL 5.6报告的Bug如下。
第 86 行出现错误 1049 (42000):未知数据库“测试”
[2014 年 6 月 9 日 13:20] Daniel Price
在即将发布的 5.7.5 版本中已修复,以下是更改日志条目:后,“innodb_memcached_config.sql”配置脚本将失败
,该脚本会删除 MySQL
“test”数据库。“innodb_memcached_config.sql”脚本现在会创建
“test”数据库(如果它不存在)。感谢您的错误报告。参考
: Bug #72678 InnoDB Memcached 插件配置 - 测试数据库
如果您担心这个bug,请使用MySQL5.7或
先创建testDB。否则,memcached 进程将不会启动。
现在,当我再次查看数据库时,我发现
mysql> 显示数据库;+--------------------+ | 数据库 | +-------------------- --+ | innodb_memcache | +--------------------+ 5 行 |
添加了 innodb_memcache。
我们也检查一下表格。
mysql> 使用 innodb_memcache; mysql> 显示表; +------------------------+ | Tables_in_innodb_memcache | +------- --------------------+ | 缓存策略 | +------------------- | --------+ mysql> select * from innodb_memcache.containersG **************************** 1.行 *** ************************ 名称:aaa db_schema:测试 db_table:demo_test key_columns:c1 value_columns:c2 标志:c3 cas_column:c4 expire_time_column:c5 unique_idx_name_on_key:主 mysql> SELECT * FROM test.demo_test; +----+--------------------+--------+------+ - -----+ | c2 | c5 | +- -----+------+ | 你好 | 0 | +----+---------------- --- +------+------+------+
测试数据库还包含 memcached 测试表。
安装 memcached 插件
抱歉让您久等了。现在是时候安装插件了。
mysql> 安装插件 daemon_memcached soname "libmemcached.so"; mysql> 显示插件 +-------------------------+--- -- ----+--------------------+----------------+--- -- ----+ | 名称 | 类型 | +------------------------+-- ------+--------------------+----------------+-- -- + |活动|模式 | GPL | 信息模式 | GPL | 存储引擎 | GPL | ----------------------+----------+------------- --- ---+----------------+---------+
看来已经安装成功了。这样就完成了插件的安装。
操作确认
memcached 应该已成功安装。
那么我们如何检查呢?
我很担心,因为启动与正常服务不同。
检查哪些端口打开以及是否有进程。
首先,我们检查一下端口是否开放。
# netstat -lnpt | egrep "(Proto|mysql)" Proto Recv-Q Send-Q 本地地址 外部地址 状态 PID/程序名称 tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 531/mysqld tcp 0 0 : ::3306 :::* 监听 531/mysqld tcp 0 0 :::11211 :::* 监听 531/mysqld
通常 memcached使用端口
11211 mysqld 进程似乎正在运行并且端口已打开。
让我们使用 telnet 检查操作。
# yum -y install telnet $ telnet localhost 11211 尝试 127.0.0.1... 连接到 localhost。转义字符为“^]”。 get foo VALUE foo 0 2 hi END stats STAT pid 8861(等)
它看起来确实有效。
Telnet 用途广泛,但libmemcached也可用,所以让我们尝试使用它。
# yum -y 安装 libmemcached # 导出 MEMCACHED_SERVERS=127.0.0.1:11211 # memcat AA 你好,你好
您
还memslap如果您想了解更多命令,请尝试以下命令。
memcat #读取memrm #删除 memstat #信息 memcp #copy memflush #删除
这次就这样了。