数据库迁移后出现MySQL错误或数据损坏

时间:2019-11-09 作者:AL-Kateb

我将我的数据库以及WordPress文件迁移到了一个新主机,我有一个使用WooCommerce的在线商店,迁移后一切都很顺利,起初我没有注意到的是,当我访问时,WooCommerce类别不再显示在管理面板中:/wp-admin/edit-tags.php?taxonomy=product_cat&post_type=product 它给了我两页,上面写着26个项目,但列表中什么都没有显示。

我查看了错误日志,发现了一些应该与此问题相关的查询,例如:

SELECT DISTINCT t.*, tt.* FROM wp_terms AS t  LEFT JOIN wp_termmeta ON ( t.term_id = wp_termmeta.term_id AND wp_termmeta.meta_key=\'order\') INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN (\'product_cat\') AND (   ( wp_termmeta.meta_key = \'order\' OR wp_termmeta.meta_key IS NULL )) ORDER BY wp_termmeta.meta_value+0 ASC, t.name ASC
当我运行这个查询时,MySQL说:

#3065 - Expression #1 of ORDER BY clause is not in SELECT list, references column \'as7ab_db.wp_termmeta.meta_value\' which is not in SELECT list; this is incompatible with DISTINCT
我将WooCommerce更新为最新版本,但问题仍然存在。

1 个回复
最合适的回答,由SO网友:AL-Kateb 整理而成

显然,这是WordPress的一个bug,它仍然与MySQL 8不兼容,可以在以下链接找到一个快速补丁:

https://core.trac.wordpress.org/ticket/48377