方法时可能遇到的问题InnoDB
memcached插件。
如果您在MySQL错误日志中遇到以下错误,服务器可能无法启动:
为打开的文件设置rlimit失败。尝试以root用户运行或请求更小的maxconns值。
错误消息来自memcached守护进程。一种解决方案是提高操作系统对打开文件数量的限制。检查和增加打开文件限制的命令因操作系统而异。这个例子展示了Linux和macOS的命令:
# Linux shell> ulimit -n 1024 shell> ulimit -n 4096 shell> ulimit -n 4096 # macOS shell> ulimit -n 256 shell> ulimit -n 4096 shell> ulimit -n 4096
另一种解决方案是减少允许的并发连接数memcached守护进程。要做到这一点,请编码
- c
memcached选项daemon_memcached_option
MySQL配置文件中的配置参数。的- c
Option的默认值为1024。(mysqld)……loose-daemon_memcached_option = ' 64 - c '
排除故障memcached守护进程无法存储或检索
InnoDB
表数据,编码-vvv
memcached选项daemon_memcached_option
MySQL配置文件中的配置参数。检查MySQL错误日志的调试输出memcached操作。(mysqld)……loose-daemon_memcached_option = ' -vvv '
如果指定要保存的列memcached值是错误的数据类型,例如数值类型而不是字符串类型,尝试存储键-值对会失败,没有特定的错误代码或消息。
如果
daemon_memcached
插件导致MySQL服务器启动问题,你可以暂时禁用daemon_memcached
插件时,通过将此行添加到(mysqld)
在MySQL配置文件中:daemon_memcached =了
例如,如果运行
安装插件
语句之前运行innodb_memcached_config.sql
配置脚本设置必要的数据库和表时,服务器可能会意外退出并启动失败。中的条目配置错误,服务器也可能无法启动innodb_memcache.containers
表格卸载了memcached对于MySQL实例,执行以下语句:
mysql>卸载插件
如果在同一台机器上运行MySQL的多个实例
daemon_memcached
插件在每个实例中启用时,使用daemon_memcached_option
配置参数以指定一个惟一的memcached端口为每个daemon_memcached
插件。如果SQL语句找不到
InnoDB
表或在表中找不到数据,但是memcachedAPI调用检索预期的数据,您可能缺少InnoDB
表中innodb_memcache.containers
表,或者您可能没有切换到正确的InnoDB
表格,发出得到
或集
请求使用@@
符号。控件中的现有条目也可能发生此问题table_id
innodb_memcache.containers
不重启MySQL服务器。自由形式的存储机制足够灵活,您的请求可以存储或检索多列值,例如col1 | col2 | col3
仍然可以工作,即使守护进程正在使用test.demo_test
表,该表将值存储在单个列中。当定义你自己的
InnoDB
表的使用daemon_memcached
插件和表中的列定义为非空
,确保为非空
将表的记录插入到innodb_memcache.containers
表格如果插入
声明的innodb_memcache.containers
记录包含的分隔值少于映射列,未填充列设置为零
.试图插入零
值到一个非空
列原因插入
方法失败,这种情况只有在重新初始化daemon_memcached
插件来应用更改innodb_memcache.containers
表格如果
cas_column
而且expire_time_column
的字段innodb_memcached.containers
表设置为零
方法时,将返回以下错误memcached插件:InnoDB_Memcached:在数据库innodb_memcache中配置表容器的第6列有一个无效的NULL值。
的memcached插件拒绝使用
零
在cas_column
而且expire_time_column
列。将这些列的值设置为0
当列未使用时。的长度memcached键和值增加时,可能会遇到大小和长度限制。
当密钥超过250字节时,memcached操作返回错误。这是目前固定的限制memcached.
InnoDB
如果值的大小超过768字节、3072字节或长度的一半,则可能遇到表限制innodb_page_size
价值。这些限制主要适用于在值列上创建索引,以便使用SQL在该列上运行生成报告的查询。看到第15.22节,“InnoDB限制”获取详细信息。键值组合的最大大小为1mb。
如果您跨不同版本的MySQL服务器共享配置文件,请使用最新的配置选项
daemon_memcached
插件可能在旧版本MySQL上导致启动错误。为避免兼容性问题,请使用宽松的
带有选项名称的前缀。例如,使用loose-daemon_memcached_option = ' 64 - c '
而不是daemon_memcached_option = ' 64 - c '
.没有任何限制或检查来验证字符集设置。memcached以字节存储和检索键和值,因此不敏感字符集。但是,您必须确保memcached客户端和MySQL表使用相同的字符集。
memcached连接被阻止访问包含索引虚拟列的表。访问索引虚拟列需要回调到服务器,但是memcached连接不能访问服务器代码。