wp_actionscheduler_logs数据表很大,如何清除?

解决WordPress MySQL 数据库中产生的巨型表 wp_actionscheduler_actions 和 wp_actionscheduler_logs

 

wp_actionscheduler_actions       这个表是用来记录计划任务的表

wp_actionscheduler_logs             这个表是用来记录任务日志的表

 

这两个数据表是由 WooCommerce 自动创建的。之所以这两个表会这么大可能是某个插件的定时任务被卡住了,结果就不停的往数据表增加任务,最后就产生了这两个巨型表。由于这两个表实际用处不大,也就是说暴力一点可以直接手动清空这两个数据表,并且不会有什么问题。当然如果求稳也可以根据下面的方法来解决这个问题。

#登录数据库,注意自行替换下面命令中的yourdatabase,这个是数据库名。
mysql -u root -p yourdatabase
#输入数据库root密码,然后回车进入数据库。
#清空wp_actionscheduler_logs数据表,注意自行替换wp_表前缀。
TRUNCATE `wp_actionscheduler_logs`;
#然后分别执行下面三行命令,注意自行替换wp_表前缀。
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'complete';
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'canceled';
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'failed';

根据你的数据表体积会有不同的清理速度,我清理大几十GB的数据表用了几个小时。所以,执行命令后发现没有马上完成可以不用着急,去喝杯茶喝完再回来看看。

根据上面的方法清理了这两个巨型数据表以后还只是治标没能治本,所以下面厦门创意互动会继续给出治标治本的解决方案。

// 每日自动清理数据表 Scheduled Actions
add_filter( 'action_scheduler_retention_period', 'cw_action_scheduler_purge_daily' );
function cw_action_scheduler_purge() {
return DAY_IN_SECONDS;
}
// 每周自动清理数据表 Scheduled Actions
add_filter( 'action_scheduler_retention_period', 'cw_action_scheduler_purge_weekly' );
function cw_action_scheduler_purge() {
return WEEK_IN_SECONDS;
}

上面这两段 PHP 代码二选一添加到主题的 funcations.php 文件中即可。因为两段代码功能相同,区别是执行时间周期,一个是每日自动清理,另一个是每周自动清理,具体可以根据你数据表的增量速度自行决定。

方法二

#!/bin/bash
user=
password=
database=
host=
echo 'TRUNCATE `wp_actionscheduler_logs`;' | mysql –user="$user" –password="$password" –database="$database" –host="$host"
echo 'DELETE FROM `wp_actionscheduler_actions` WHERE `status` = "complete";' | mysql –user="$user" –password="$password" –database="$database" –host="$host"
echo 'DELETE FROM `wp_actionscheduler_actions` WHERE `status` = "canceled";' | mysql –user="$user" –password="$password" –database="$database" –host="$host"
echo 'DELETE FROM `wp_actionscheduler_actions` WHERE `status` = "failed";' | mysql –user="$user" –password="$password" –database="$database" –host="$host"

wp_actionscheduler_actions doesn’t exist 报错解决办法

安装Action Scheduler插件

WordPress后台搜索安装Action Scheduler插件,或者直接去github下载最新版,安装后启用该插件。如果您在激活 Action Scheduler 后立即遇到相同的致命错误,则您可能遇到了环境问题。在这种情况下,请联系您的托管服务提供商的技术支持,并要求他们手动将数据库中 Action Scheduler 表的字符集设置为“utf8mb4_unicode_520_ci”。

创建 Action Scheduler 数据表

现在您已经安装并激活了 Action Scheduler 插件,单击”工具“菜单下出现的Scheduled Actions

然后在此页面上,您可能会在顶部看到一些通知:It appears one or more database tables were missing. Attempting to re-create the missing table(s).

翻译成中文就是“Action Scheduler 迁移正在进行中。预定的行动清单可能不完整。” 和“似乎缺少一个或多个数据库表。正在尝试重新创建丢失的表。”

您必须等待几秒钟,直到 Action Scheduler 完成迁移并创建所需的数据库表。一旦两个通知都消失了,就说明该问题已解决,你可以重新安装并启用之前删掉的插件。

© 版权声明
THE END
文章不错?点个赞呗
点赞0 分享