MySQL 不会停止执行任务

MySQL 不会停止执行任务

抱歉,问题的标题是这样,我的问题是这样:我一直在尝试设置一些脚本,每小时从外部源导入大量内容。它们似乎工作正常,所以我设置了一个 cronjob 来每小时运行它们。一天后,我发现该脚本的六七个实例占用了 MySQL 服务器,使其没有响应。我终止了它们的进程,但 MySQL 仍然没有响应。我不得不终止 MySQL,重新启动,然后 MySQL 又开始工作(谁知道在什么地方)并且没有响应(是的,我确实从 cronjobs 中删除了脚本)。我SHOW PROCESSLIST编辑并终止了能找到的每个进程。仍然没有反应,MySQL 占用了 HDD,处于顶部top,使服务器负载飙升。我不知道该怎么办,如果我终止并重新启动它,它可能还会做同样的事情。我该怎么办?

答案1

您的数据库正在做它应该做的事情。当事务被终止时,需要将其回滚。如果您想要一个一致的数据库,您就不能停止它。

如果这对您来说并不重要,请终止 MySQL 并从头开始创建一个全新的数据库,因为除非您让回滚完成,否则这个数据库将永远不会再工作。

对于 cron 作业,建议在作业中首先检查是否仍在从上一次开始运行,如果是,则退出。确保记录正在发生的事情,以便您可以将运行之间的时间调整为更好的值。

相关内容