通过mysql中的Data目录恢复数据库数据

系统表(mysql 库)损坏,导致服务启动失败。

操作前请将原 Data 文件进行备份。

第一步:使用 innodb_force_recovery 强制启动 MySQL(只读模式)

  1. 停止 MySQL 服务

1.1 打开cmd窗口,输入:services.msc

1.2 在服务窗口中找到 Mysql 停止服务。

  1. 打开 C:\ProgramData\MySQL\MySQL Server 5.7\my.ini 配置文件。

在末尾或任何空行,添加以下两行:

innodb_force_recovery = 1 #让 InnoDB 引擎强制启动(跳过一些检查,允许你读取数据)

skip-grant-tables #绕过权限表检查,避免因 mysql.columns_priv 缺失而启动失败。

  1. 保存文件,然后启动MySQL服务。

**注意:**此模式下MySQL是只读的,不允许写入,使我们导出数据。

第二步:导出所有业务数据库(关键操作)

  1. 使用管理员身份打开cmd窗口,进入 MySQL 的 bin 目录:

cd /d "C:\Program Files\MySQL\MySQL Server 5.7\bin"

  1. 使用 mysqldump 导出所有业务库(你用到的数据库),同时跳过系统库(mysql、performance_schema、sys):

mysqldump --skip-grant-tables --databases xxx xxxx xxx > D:\backup_all.sql

  • --skip-grant-tables:绕过权限检查,避免因系统表损坏而报错。
  • --databases:后面跟的是你所有需要恢复的库名(若忘记库名,此时可以通过Navicat查看库名,数据库表为空状态)
  • 导出文件保存到 D:\backup_all.sql,路径可自行修改
  • 检查sql文件是否存在,确认数据已导出。

第三步:关闭服务,移除 my.ini 中的添加项

  1. 停止 MySQL 服务。

  2. 再次打开 my.ini,删除 第一步-步骤2 添加的两行命令。

第四步:重建系统表(清空Data,重新初始化)

  1. 将当前的 Data 文件夹重命名为 Data_old_full(作为完整备份,包含旧 ibdata1)。

  2. 创建一个新的空文件夹,命名为 Data (位置不变 C:\ProgramData\MySQL\MySQL Server 5.7\Data)。

  3. 以管理员身份打开 cmd,进入 bin 目录,执行初始化(无密码):

mysqld --initialize-insecure --datadir="C:\ProgramData\MySQL\MySQL Server 5.7\Data" --console

成功后,新的 Data 目录下会生成完整的系统表(但没有业务数据)。

步骤五:导入之前导出的 SQL 文件

  1. 启动 MySQL 服务。

  2. 导入备份文件:

mysql -u root -p < D:\backup_all.sql

**注意:**密码直接回车,因为初始化时无密码。

步骤六:设置密码

  1. 打开 cmd 窗口,输入

mysql -u root -p

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';

FLUSH PRIVILEGES;

相关推荐
枫彩3 分钟前
WorkBuddy 做A股自动复盘实战:数据校验、工具调用与定时报告
大数据·网络·数据库·a股·mcp·workbuddy
其实防守也摸鱼13 分钟前
CTF 入门到进阶:Web、逆向、密码学与 Pwn 实战解题指南
数据库·安全·自动化·github·copilot
晓子文集13 分钟前
Tushare接口文档:每日停复牌信息(suspend_d)
大数据·数据库·金融·金融数据·量化投资
SamChan9031 分钟前
用PostgreSQL+pgvector构建PDF翻译记忆库:向量相似度检索+增量更新实战
数据库·python·ai·postgresql·pdf·wpf
蒲锘37 分钟前
DevOps 实验阶段四:Infra 节点 + MySQL + Spring Boot 容器化
spring boot·mysql·docker
裕晟资质规划1 小时前
首次办理军工保密资质:咨询服务选择要点与全流程交付清单(评估框架)
大数据·运维·服务器·网络·数据库·经验分享
Data_Journal9 小时前
用于网页抓取的 Node-unblocker
大数据·开发语言·数据库·python·scrapy
涤生大数据9 小时前
一次“没有运行日志”的DolphinScheduler任务失败排查
大数据·数据库·人工智能·状态模式
专注API从业者9 小时前
告别人工盯品!借助 Open Claw 搭建电商商品自动化监控与数据分析系统(完整可运行源码)
大数据·运维·数据库·数据分析·自动化
viskaz10 小时前
数据库迁移流程学习
数据库