首页 > 解决方案 > 无法解决问题,因为 MySQL 不断重新启动

问题描述

我收到以下错误。我不确定如何运行它告诉我运行的命令,因为容器不断重新启动。长话短说,我的存储空间被填满了,因为由于某种原因,我的日志文件越来越大,直到它填满了驱动器。我删除了 Nginx 的日志文件和我的全局数据库日志。之后我重新启动了服务器。所有容器都在 services_global-db_1 容器旁边重新启动。检查该容器的日志时,我收到以下消息。

2019-09-25T20:20:15.842133542Z 2019-09-25 20:20:15 140606507280320 [Note] Found 2 prepared transaction(s) in InnoDB
2019-09-25T20:20:15.842251547Z 2019-09-25 20:20:15 140606507280320 [ERROR] Found 2 prepared transactions! It means that mysqld was not shut down properly last time and critical recovery information (last binlog or tc.log file) was manually deleted after a crash. You have to start mysqld with --tc-heuristic-recover switch to commit or rollback pending transactions.
2019-09-25T20:20:15.842326927Z 2019-09-25 20:20:15 140606507280320 [ERROR] Aborting

我试图docker exec -it services_global-db_1 bash用容器打开一个 bash 会话(mysqld_safe --tc-heuristic-recover=COMMITContainer 64b72eb0898e7... is restarting, wait until the container is running

如何在由于 SQL 错误而无法继续运行的容器中运行命令,而无法运行所述命令则无法修复?

更新:我试图手动运行 MariaDB 容器,docker run -it --rm --entrypoint /bin/bash easyengine/mariadb:v4.0.0以便我可以运行我需要运行的 SQL 命令来修复数据库错误。我能够启动容器并访问它,但是当我尝试启动 MySQL 服务时,出现以下错误。

[Warning] Could not open mysql.plugin table. Some options may be missing from the help text
log-error

我假设我在运行语句中遗漏了一些命令或 arg,这些命令或 arg 以错误的方式创建容器或某些东西,因为看起来 MariaDB 找不到要打开的正确文件或其他东西。有人可以向我解释如何手动运行 MariaDB 容器,以便我能够打开 MySQL 服务并运行脚本,我可以解决提交错误并使数据库恢复并运行?

请并感谢您提供的任何帮助!

标签: mysqldockermariadbubuntu-18.04

解决方案


推荐阅读