【问题标题】:mysql innodb_memcache plugin error in replicationmysql innodb_memcache 插件复制错误
【发布时间】:2014-04-30 11:53:22
【问题描述】:

我开始将 mysql 5.6 用于 innodb_memcache 插件,在我配置主从复制之前一切正常。
用主从配置它时,有两件事让我感到困惑。 注意下面是我在 my.cnf 中为 memcache 启用的行

daemon_memcached_w_batch_size=25  
daemon_memcached_option='-v -m 1048'      
  1. 当我不在 my.cnf 中使用 innodb_api_enable_binlog=1 时 通过 memcache 提示插入/更新(telnet localhost 11211) innodb_memcache 表不复制,但保存在表中(通过 memcache 提示/sql 提示访问)。 当我从 sql 提示符执行此操作时,一切正常,数据被复制。 不知道mysql如何复制数据而不将其保存在二进制日志中。

  2. 当我在 my.cnf 中启用 innodb_api_enable_binlog=1 从 sql / memcache 提示插入记录全部复制到从服务器,但问题是当我使用 memcache 提示更新记录时,它会抛出以下错误。 外部主机关闭连接 并且数据不保存在表中。
    现在我不知道该怎么做,因为我计划在生产中使用 mysql 5.6 但由于这个问题我无法做到这一点。

【问题讨论】:

  • 请详细描述您的问题。你在哪台服务器上激活了内存缓存?两个都?您将innodb_api_enable_binlog 放入了哪些服务器my.cnf?您尝试通过 memcache 查询或更新哪个服务器?请编辑您的原始帖子以包含更多详细信息。
  • 嗨,在主从配置上,我在主服务器上启用了 memcache 插件,对于 innodb_api_enable_binlog 显然它已在 master my.cnf 上启用,对于 memcache / 查询显然我正在使用主服务器。希望你能得到所有的信息。
  • 即使我做了 daemon_memcached_w_batch_size=1 ,我仍然面临同样的问题
  • 你看过this site吗?它说您应该将-vvv(不仅仅是-v)添加到参数中,然后应该查看MySQL错误文件。也许这提供了额外的信息。
  • 另外:您使用的是最新的 5.6 次要版本吗?

标签: mysql


【解决方案1】:

终于找到了解决办法。
在使用带有 memcache 插件的 innodb 表时应该记住几件事。

  1. 当我们创建要通过 memcache 使用的 innodb 表时,我们为 memcache 参数保留了 3 列,例如,如果我们想创建一个具有 3 列的表来保存我们的信息,那么我们必须再保留 3 列用于 memcache 插件的列,因此我们创建了具有 6 列的表(3 到 sotre 值 + 3 列(数据类型应该是 c1 和 c3 的整数,c2 的大整数)用于在 memcache 容器表中创建条目,它是固定的)。

  2. 当我们在 innodb_memcache.containers 中插入记录时,在这里使用这 3 个额外的列,下面是详细信息。

注意:3 个额外的列名为 c1,c2,c3 数据类型应为 int。

所以我们在容器表中插入记录如下
标志:c1
cas_column: c2
expire_time_column: c3

现在设置后,我的 MySQL 没有崩溃,并且工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-07
    • 2016-08-13
    • 2017-02-10
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多