为 MySQL 5.6 安装 memcached 插件

我是基础设施团队的斋藤。
最近我迷上了awscli命令。
那么,你用过
memcached (发音:mem-cash-dee Memcached是一个通用的分布式缓存系统。
它通过在 RAM 中缓存数据和对象
Memcached 自 2016 年 3 月 22 日推出以来,已经走过了 13 年。我们
相信 Memcached 将成为您强大的工具。
顺便说一句,我喜欢Redis
本文假设您已通过 SSH 连接到服务器,并
在 MySQL 5.6 上安装 memcached 插件。
(memcached 插件是 AWS RDS 的一个可选组件,因此安装起来很容易。)
安装 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 install mysql-community-server
启动 MySQL
/etc/init.d/mysqld 启动
目前为止一切正常。启动后,将显示[确定]。
准备所需文件
现在,请检查“ innodb_memcached_config.sql ”文件的位置。
您可以使用 locate 命令查找它。
$ locate innodb_memcached_config.sql /usr/share/mysql/innodb_memcached_config.sql
找到了。这次我们需要的是这个.sql文件。
笔记
现在,如果您在接下来的步骤中出错,就会遇到问题。MySQL
5.6 中已报告存在一个 bug。
请确保您
的 MySQL 服务器上一个名为 test 的数据库如果没有,请创建一个。
mysql> show databases; mysql> create database test;
如果此处未创建名为 test 的数据库,则稍后会发生错误。
导入数据库和表
然后在 MySQL 控制台中:
mysql> source /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> source /usr/share/mysql/innodb_memcached_config.sql
MySQL 5.6 中报告的错误如下:
第 86 行出现错误 1049 (42000):未知数据库“test”
[2014 年 6 月 9 日 13:20] Daniel Price
已在即将发布的 5.7.5 版本中修复,以下是更新日志条目:后,“innodb_memcached_config.sql”配置脚本会失败
,因为该脚本会删除MySQL的
“test”数据库。现在,“innodb_memcached_config.sql”脚本会在
“test”数据库不存在时创建它。感谢您提交错误报告。参考
:错误 #72678 InnoDB Memcached 插件配置 - 测试数据库
如果您担心此错误,
请使用 MySQL 5.7 或先创建一个测试数据库。否则,memcached 进程将无法启动。
现在,如果我们再看一下数据库,
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | innodb_memcache | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.00 sec)
innodb_memcache 已添加。
让我们检查一下表。
mysql> use innodb_memcache; mysql> show tables; +---------------------------+ | Tables_in_innodb_memcache | +--------------------------+ | cache_policies | | config_options | db_schema: test db_table: demo_test key_columns: c1 value_columns: c2 flags: c3 cas_column: c4 expire_time_column: c5 unique_idx_name_on_key: PRIMARY mysql> SELECT * FROM test.demo_test; +----+------------------+------+------+------+ | c1 | c2 | c3 | c4 | c5 | +----+-------------------+------+------+------+ | AA | HELLO, HELLO | 8 | 0 | 0 | +----+------+------+------+------+
测试数据库还包含 memcached 测试表。
安装 memcached 插件
抱歉让您久等了。现在可以安装插件了。
mysql> install plugin daemon_memcached soname "libmemcached.so"; mysql> show plugins; +---------------------------------------+----------+--------------------+-----------------+---------+ | 名称 | 状态 | 类型 | 库 | 许可证 | mysql_native_password | 已激活 | 身份验证 | NULL | GPL | ... | INNODB_SYS_FOREIGN_COLS | 已激活 | 信息模式 | NULL | GPL | | INNODB_SYS_TABLESPACES | 已激活 | 信息模式 | NULL | GPL | | INNODB_SYS_DATAFILES | 已激活 | 信息模式 | GPL | | partition | 已激活 | 存储引擎 | NULL | GPL | | daemon_memcached | 已激活 | 守护进程 | libmemcached.so | GPL | +---------------------------+----------+----------------------+-----+---------+
安装似乎已成功。插件安装完成。
操作检查
Memcached 应该已经成功安装。
那么我们该如何检查呢?
它的启动方式与普通服务不同,所以我们很好奇。
让我们检查一下哪些端口是开放的,以及是否有进程正在运行。
首先,检查端口是否已打开。
# netstat -lnpt | egrep "(Proto|mysql)" 协议 接收队列 发送队列 本地地址 外部地址 状态 PID/程序名称 tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 531/mysqld tcp 0 0 :::3306 :::* LISTEN 531/mysqld tcp 0 0 :::11211 :::* LISTEN 531/mysqld
通常情况下,memcached使用
11211进程似乎正在运行,并且该端口已打开。
让我们使用 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 install libmemcached # export MEMCACHED_SERVERS=127.0.0.1:11211 # memcat AA HELLO, HELLO
您
还memslap如果您想了解更多命令,请尝试以下命令。
memcat #读取 memrm #删除 memstat #信息 memcp #复制 memflush #全部擦除
这次就到这里。
0