从数据文件夹备份中恢复 MySQL 数据库

22

我已经卸载了旧的XAMPP并删除了d:\xampp文件夹中的所有内容,然后安装了新的XAMPP。当我将备份文件夹(数据库名称为名称,包含所有.frm.opt文件)复制到D:\xampp\mysql\data时,在phpmyadmin列表中显示该数据库,但其中没有表和数据。我做错了什么?

14个回答

42

以下是我处理这种情况的方法:

  1. 从xampp控制面板中停止 Apache 和 MySql 服务。
  2. 备份(以防万一),然后删除新的xampp安装文件夹<physical_drive>/xampp/mysql下的data文件夹。

    (data文件夹包含表的模式/表定义(.frm)文件。)

  3. 将先前xampp文件夹(或备份)中的data文件夹复制到新位置(mysql下的<physical_drive>/xampp/mysql)。
  4. 现在从xampp控制面板启动 Apache 和 MySql 服务。

完成了,作为您点击它们时,表应该显示其结构。

注意确保您不要触及xampp安装文件夹下的bin文件夹。


我之前只是尝试复制包含我想要的表的单个文件夹,但这并没有起作用。我可以确认复制整个“data”文件夹解决了问题。 - James Bubb
谢谢。你救了我的命。 - SAYE
这是最好、最简单的方式。 - Madan Raj
那对我也没用,这个链接解决了问题 https://dev59.com/86Dia4cB1Zd3GeqPADdG - Irfan Ahmed
如果使用php7+x版本,还需要将phpmyadmin文件夹从旧xampp复制到新的xampp。 - Rohit Chauhan

20

有解决方法:

  1. 安装新的Xampp
  2. 将旧版本xampp\mysql\data\databasefolder文件夹复制到正在运行的xampp文件夹中
    C:\xampp\mysql\data
  3. 停止mysql和apache服务,备份当前运行的xampp中的ib_logfile0、ib_logfile1和ibdata1文件,并妥善存放
  4. 然后从旧的xampp\mysql\data\中复制相同的文件(ib_logfile0、ib_logfile1和ibdata1),并将其粘贴到正在运行的xampp服务器C:\xampp\mysql\data\中
  5. 启动mysql和apache服务,在CMD窗口中输入以下命令:C:\xampp\mysql\bin>mysqldump -u dbusername -p dbpassword dbname>D:\exportdb.sql
  6. 停止mysql和apache服务,恢复主要的ib_logfile0、ib_logfile1和ibdata1文件(请查看第3步)
  7. 然后再次启动服务,打开http://localhost/phpmyadmin/,并从D:\exportdb.sql导入数据库备份。现在您的备份正在工作:)

这个方法需要很长时间,但是很有帮助。 - Developer Ali Usman

15
  1. 将旧的数据库全部复制到新安装的 Xampp 下的此目录中:

C:\xampp\mysql\data\

  1. 从新的 Xampp(C:\xampp\mysql\data)复制以下文件并进行备份:

ib_logfile0、ib_logfile1 和 ibdata1

  1. 同样地,从旧的 Xampp 复制并替换 ib_logfile0、ib_logfile1 和 ibdata1 到新的 Xampp。
  2. 如果之前的数据库已经崩溃或出现错误,例如 mysqld.exe 已停止工作,请在 mysql 的 my.ini 文件中使用以下两行:

[mysqld]

innodb_force_recovery = 2

innodb_file_per_table=1

  1. 重新启动 Apache 和 MYSQL,并转到 PHPMyadmin 导出您之前的数据库。
  2. 最后替换以前备份的 ib_logfile0、ib_logfile1 和 ibdata1。

2
在xampp/mysql/bin/my.ini中设置datadir = "D:\xampp\mysql\data"。

1

如果您想将一些数据库从旧的XAMPP复制到新的XAMPP,首先要停止XAMPP控制中的Apache和MySQL,并按照以下步骤操作:

  1. 进入old_xampp/mysql/data文件夹
  2. 复制ibdata1文件
  3. 进入new_xampp/mysql/data文件夹
  4. 粘贴您已经复制的文件(进行替换)
  5. 回到old_xampp/mysql/data文件夹并复制您想要的数据库文件夹
  6. 进入new_xampp/mysql/data文件夹并粘贴数据库文件夹
  7. 重新启动apache和MySQL

0

我遇到了同样的问题。我所有的项目都在mysql中,但不知何故丢失了。

我的旧xampp下的mysql被删除/卸载了。我甚至没有数据文件夹可以复制到新的xampp位置。

我浏览了文件夹,并在以下位置找到了mysql/data和mysql/backup。

C:\xampp\perl\mysql\data

C:\xampp\perl\mysql\backup

这是我所做的。

我将这两个文件夹复制到新的xampp mysql/data和mysql/backup文件夹的位置。

我还将旧xampp下/mysql中的其他文件(而非文件夹)复制到新的xampp /mysql中。

如果正在运行,请停止新的xampp mysql和apache服务器。重新启动。

哇,我找回了所有丢失的数据库。

希望这有所帮助。


0

我遇到了一些问题,非常感谢您提供的指南,它像魔法一样奏效。但是我只做到了以下步骤:

安装新的xampp

  1. 从xampp\mysql\data\databasefolder复制旧数据库文件夹并粘贴到正在运行的xampp文件夹C:\xampp\mysql\data中

  2. 之后停止mysql和apache服务,备份正在运行的xampp文件ib_logfile0、ib_logfile1和ibdata1,并将其存储在安全的位置

  3. 然后从旧的xampp\mysql\data\复制相同的文件(ib_logfile0、ib_logfile1和ibdata1)并粘贴到正在运行的xampp服务器C:\xampp\mysql\data\中

  4. 打开http://localhost/phpmyadmin/并导出数据库以备份

我的网站已经恢复正常运行。


0

我曾经遇到过类似的问题,即Windows操作系统损坏。

  1. 安装新的XAMPP,停止服务(Apache、MySQL)

  2. 将以下文件夹和文件从旧版本复制到新版本。位置:

    C:\xampp\mysql\data ib_logfile0、ib_logfile1、ibdata1

  3. 启动服务。

  4. 只需运行phpmyadmin或运行网站即可。它会正常工作!


0
我已经找到了解决方案。我安装了新的XAMPP,并用新的文件夹替换了旧的XAMPP中Apache和mysql文件夹中的旧bin文件夹,现在我已经成功恢复了所有数据。

0

我在搜索Ubuntu下恢复XAMPP数据库的方法时发现了这个问题。 显然,这个问题是针对Windows系统的,但我认为这可能会有所帮助,因为这是唯一一个好的搜索结果。

对于/opt/lampp/中的标准安装。 如果您备份了整个lampp安装,则可以从文件夹/opt/lampp/var/mysql/中恢复数据库。 (如果您还没有,请考虑将mysql文件夹添加到您的备份系统中。)

  1. 确保MySQL未运行。
  2. 将上述文件夹复制到新的XAMPP安装中。
  3. 确保所有者是mysql。
  4. 启动MySQL。

您的旧数据库应该再次可访问。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接