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

未停止MySQL直接重启PC后XAMPP MySQL无法启动求助

XAMPP中MariaDB非法关机后无法启动的恢复方案

问题核心

未停止MySQL服务直接重启电脑,导致XAMPP内的MariaDB 10.4.28无法启动,日志关键报错:

InnoDB: Trying to read page number 49153 in space 0, space name innodb_system, which is outside the tablespace bounds.

说明InnoDB系统表空间(ibdata1)因非法关机出现损坏,崩溃恢复无法完成。

已尝试的无效操作

  • 多次重启电脑
  • 删除/重命名C:\xampp\mysql\data下的aria_log.00000001和aria_log_control
  • 执行\bin\aria_chk -r mysql\*.MAI修复文件
  • 在my.ini中添加innodb_force_recovery = 1/2后重启MySQL
  • 删除ibdata1及data文件夹其他文件(已备份,但会重置本地WordPress站点)

针对性恢复步骤

方法1:尝试更高等级的InnoDB强制恢复

InnoDB的innodb_force_recovery等级从1到6,等级越高恢复限制越多,你已尝试1和2,继续尝试更高等级:

  1. 打开XAMPP的MySQL配置文件my.ini(通常在C:\xampp\mysql\bin或C:\xampp\mysql目录下)
  2. 添加或修改配置:innodb_force_recovery = 3
  3. 保存配置后,启动XAMPP的MySQL服务
    • 如果能启动,立刻打开CMD,进入C:\xampp\mysql\bin目录,执行导出命令:
      mysqldump -u root -p --all-databases > all_databases_backup.sql
      
    • 输入MySQL密码后等待导出完成,这一步能把所有数据备份成SQL文件
  4. 如果3等级无法启动,依次尝试innodb_force_recovery = 4、5、6,每次修改后重启MySQL,只要能启动就立刻导出数据
    • 注意:等级6会跳过所有页恢复,是最后尝试的选项,启动后只能读数据,不能写

方法2:手动迁移数据库文件重建表空间

如果所有强制恢复等级都无法启动MySQL,尝试以下步骤:

  1. 完整备份C:\xampp\mysql\data目录到其他磁盘(包括所有数据库文件夹、ibdata1、日志文件)
  2. 停止XAMPP的MySQL服务,删除C:\xampp\mysql\data目录下的ibdata1、ib_logfile0、ib_logfile1
  3. 启动MySQL服务,此时InnoDB会自动重建干净的系统表空间文件
  4. 停止MySQL,把备份的WordPress数据库文件夹(比如wp_xxxx)复制到C:\xampp\mysql\data目录下
  5. 修改my.ini添加innodb_force_recovery = 6,启动MySQL
  6. 进入C:\xampp\mysql\bin,执行导出命令:
    mysqldump -u root -p wp_xxxx > wordpress_backup.sql
    
  7. 导出完成后,停止MySQL,删除innodb_force_recovery配置,重新启动MySQL,创建新的WordPress数据库,导入备份的SQL文件恢复站点

方法3:使用数据恢复工具(备选)

如果上述方法都失败,可以尝试用专门的InnoDB数据恢复工具,直接读取损坏的ibdata1和数据库文件夹中的.ibd文件提取数据,这类工具能跳过InnoDB的崩溃恢复机制直接解析数据文件。

后续建议

  • 恢复完成后,立刻对WordPress站点进行完整备份(包括文件和数据库)
  • 后续关闭电脑前,先停止XAMPP的MySQL服务,避免再次出现非法关机损坏表空间的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 16:05:20