You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

断电后MariaDB Server无法启动的故障排查请求

故障原因与解决方法

核心故障原因

  1. 缺失插件/存储引擎库文件:断电前你的MariaDB启用了多个可选插件(auth_gssapi.so、cracklib_password_check.so)和存储引擎(Connect、OQGraph、RocksDB、TokuDB),但当前系统中这些组件的共享库文件丢失或损坏,导致启动时无法加载。
  2. 事务恢复流程受阻:MariaDB崩溃后依赖tc.log(事务协调日志)完成未提交事务的恢复,恢复要求所有崩溃时启用的引擎必须正常加载,否则恢复失败,直接终止启动。

数据是否丢失?

从错误日志中InnoDB的初始化信息来看:

  • InnoDB已完成缓冲池初始化,日志序列号(log sequence number 2938465608)正常,说明InnoDB核心数据文件(共享表空间、独立表文件)未损坏。
  • 你的核心数据大概率没有丢失,只是恢复流程因插件缺失被卡住。

解决步骤

方法1:安装缺失的插件包(优先推荐)

针对Debian/Ubuntu系统,执行以下命令安装对应插件:

sudo apt update
sudo apt install mariadb-plugin-connect mariadb-plugin-cracklib-password-check mariadb-plugin-oqgraph mariadb-plugin-rocksdb mariadb-plugin-tokudb mariadb-plugin-auth-gssapi

安装完成后,重启MariaDB服务:

sudo systemctl restart mariadb

方法2:强制跳过事务恢复(无法安装插件时使用)

  1. 停止残留的MariaDB进程:
sudo systemctl stop mariadb
sudo pkill mysqld
  1. 备份事务协调日志(防止操作失误):
sudo cp /var/lib/mysql/tc.log /var/lib/mysql/tc.log.bak
  1. 删除原tc.log文件:
sudo rm /var/lib/mysql/tc.log
  1. 使用启发式恢复启动服务:
sudo mysqld_safe --tc-heuristic-recover=commit

注:commit会提交所有未完成的事务,rollback会回滚,优先选commit以减少数据损失。

  1. 启动成功后,立即全量备份数据:
mysqldump -u root -p --all-databases > full_backup.sql
  1. 禁用不需要的插件:编辑/etc/mysql/my.cnf(或对应配置文件),找到类似plugin_load_add=ha_connect.so的配置行,注释掉不需要的插件,避免后续启动再出现问题。

内容的提问来源于stack exchange,提问作者Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 01:15:11