GTID 一致性:CREATE TEMPORARY TABLE 和 DROP TEMPORARY TABLE 只能在事务上下文之外执行

Pra*_*nda 3 mysql google-cloud-platform gtid magento2.2

我的 Magento 版本是 2.2.3。我们使用的是 Google Cloud SQL 第二代实例。

运行索引命令时遇到错误

一般错误:1787 语句违反 GTID 一致性:CREATE TEMPORARY TABLE 和 DROP TEMPORARY TABLE 只能在事务上下文之外执行。函数或触发器中也不允许使用这些语句,因为函数和触发器也被认为是多语句事务。查询是:CREATE TEMPORARY TABLE IF NOT EXISTS catalog_product_index_eav_tempLIKE catalog_product_index_eav_tmp

Log*_*gan 5

根据Magento 2 Issue Tracker 中发布的问题,我能够通过使用以下命令禁用二进制日志记录来消除此错误:

gcloud sql instances patch [INSTANCE_NAME] --no-enable-bin-log
Run Code Online (Sandbox Code Playgroud)

您还可以在创建 Cloud SQL 实例时从 Web 控制台禁用二进制日志记录:

1. Expand "Show Configuration Options"
2. Expand "Enable auto backups and high availability"
3. Uncheck "Enable binary logging"
Run Code Online (Sandbox Code Playgroud)

这意味着您目前无法使用 Magento 2 社区版实现高可用性 MySQL 实例(使用 Google Cloud SQL)。

您可以跟踪问题 12124的状态以获取更新。