【发布时间】:2019-11-22 16:35:10
【问题描述】:
我在集群中将我的数据库从 Mysql 5.7 移动到 Mysql 8。我不知道为什么,但是 woocommerce 类别变得很奇怪。 在数据库中,我有关于类别 (wp_terms) 的所有信息,在后端计数和分页是正确的,但类别未显示在列表中,并且 URL 未在前端退出。
有人遇到过类似的问题吗?
【问题讨论】:
标签: mysql wordpress woocommerce
我在集群中将我的数据库从 Mysql 5.7 移动到 Mysql 8。我不知道为什么,但是 woocommerce 类别变得很奇怪。 在数据库中,我有关于类别 (wp_terms) 的所有信息,在后端计数和分页是正确的,但类别未显示在列表中,并且 URL 未在前端退出。
有人遇到过类似的问题吗?
【问题讨论】:
标签: mysql wordpress woocommerce
经过 15 小时的尝试和寻找解决方案,我找到了。问题出在 MYSQL 8 数据库配置
在 MYSQL 5.7 上,SQL 模式包含了 ONLY_FULL_GROUP_BY 模式,该模式通过拒绝 non-deterministic-result 包含 GROUP BY 或聚合函数的查询。在新的 MYSQL 版本上,此模式已被删除。 我在启用 Wordpress 调试时发现并收到此错误::
Error Code: 3065. Expression #1 of ORDER BY clause is not in SELECT list, references column 'wp_termmeta.meta_value' which is not in SELECT list; this is incompatible with DISTINCT
最终的解决方案是在MYSQL SQL模式配置下面添加了这个配置:
STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
执行此操作后,集群正常工作。
【讨论】: