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



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

错误:一个或多个数据库表不可用。数据库可以 需要修理。

所以我跑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命令时,我收到一些错误,例如:

[错误] InnoDB:索引记录在option_namemyschema.wp_options

我想我会尝试导出/重新导入整个架构

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

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

最新更新