WP CLI 声称 DB 需要修复,但 WP 本身可以工作

WP CLI Claims DB Needs Repairing but WP Itself Works

我在 deploy/upgrade 脚本中使用 wp-cli。我目前从 wp core is-installed 收到以下错误(我的脚本使用 wp cli 执行的第一个命令)

Error: One or more database tables are unavailable. The database may need to be repaired.

所以我 运行 mysqlcheck --all-databases --check --extended 查看数据库错误是什么,但它报告所有表都正常!

此外,该网站本身似乎可以正常工作(可以登录到管理员、查看页面等)所以一方面感觉这是一个 wp-cli 问题,但另一方面来自 wp 核心或数据库另一个。

有人知道我可以从哪里开始寻找吗?除了我们总是收到的一些警告外,apache 日志中没有任何内容。

运行 WordPress 5.4.2 和 wp-cli 2.4.0。第一次出现错误,我们之前更新WP版本后没有运行“升级”例程,但我进入管理并点击“升级网络”。这成功了,但 cli 仍然失败。

数据库是10.4.13-MariaDB,PHP版本是7.3.19。 运行 在 CentOS Linux.

检查了 mariadb.log(感谢@nbk)。 运行 连接站点或 wp-cli 命令时没有任何反应。但是,当我 运行 mysqlcheck 命令时,我得到一些错误,如:

[ERROR] InnoDB: index records in a wrong order in option_name of table myschema.wp_options

我想我会尝试 export/re-import 整个架构

数据库似乎以某种方式混合了 utf8 和 utf8mb4 表。不确定如何。我推测它可能是在 MariaDb 版本升级之前和之后创建的,但不确定这是真的。无论如何,我们通过导出整个模式、修复转储文件中的排序规则并重新导入来解决。

如果有错误,我会说它在 mysqlcheck 命令中,它报告一切正常,即使它在 mariadb.log 中触发关于记录格式错误的错误。