Magento 2 重命名 Table 元数据锁定

Magento 2 Rename Table metadata lock

Magento 2(可能来自 cron 或计划备份)似乎每天都锁定并且不允许管理员用户登录管理面板。此问题的原因是 MySQL 元数据锁定。 MySQL 是 运行 这个查询。

RENAME TABLE catalog_product_flat_1 TO catalog_product_flat_1_drop_indexer,
             catalog_product_flat_1_tmp_indexer TO catalog_product_flat_1

到目前为止,完成查询已花费 23407 秒(6.5 小时)并且还在增加。到目前为止,每天只有当任务被终止时,管理员才被允许登录。 table里面有16198条记录,好像有43MB的数据。我怎样才能解决这个问题,而不必在每次运行时都终止查询?

可能的原因是某些 other 连接有意或无意地与 either 进行了 anything那些表。

查找尚未提交的事务。寻找 ALTERs。等等

要检查的另一件事是 SHOW VARIABLES LIKE '%timeout%'; 查找任何大于 23407 的值。在我的服务器上,我看到

| interactive_timeout         | 28800    |
| wait_timeout                | 28800    |

我在上面解决了这两个问题。您可以降低它们,看看它是否有助于 RENAME 下一次 。 (更改这些设置在重新登录后才会生效。)

| lock_wait_timeout           | 31536000 |

(不同于innodb_lock_wait_timeout);不知道,但很可疑

| rpl_stop_slave_timeout      | 31536000 |

与复制一起使用。