如何在XAMPP中恢复mysql数据库?

时间:2015-03-25 14:40:12

标签: mysql xampp backup innodb

我有整个xampp/mysql文件夹的备份。如何在新安装的XAMPP上使用它来恢复旧的数据库?

只需将旧的xampp/mysql文件夹复制到新的xampp会导致mysql错误,例如:

  

InnoDB:InnoDB数据中的表veno / sls37_finder_links_termsc   dictionary具有表空间标识1171,但具有该标识或名称的表空间   不存在。你删除或移动.ibd文件了吗?这也可能是   使用CREATE TEMPORARY TABLE创建的表,其.ibd和.frm文件   MySQL自动删除,但该表仍然存在于InnoDB中   内部数据字典。

4 个答案:

答案 0 :(得分:3)

  

您无法复制具有InnoDB表的数据库文件夹,因为   InnoDB存储引擎之间保持着共生关系   InnoDB表'物理文件(frm和.ibd)和数据字典。

参考:https://dba.stackexchange.com/questions/82093/moving-binary-database-folder-is-causing-issues-with-innodb-tables

您可以尝试(InnoDB部分):https://dba.stackexchange.com/questions/57120/recover-mysql-database-from-data-folder-without-ibdata1-from-ibd-files/57157#57157

推荐:在您的情况下可能会迟到,但在移动到另一台服务器之前,最好将数据库导出到sql文件并从phpmyadmin,Mysql Workbech导入它,SQLyog或终端

导出:

mysqldump -u user -p password database_name > database_name.sql

导入

mysql -u user -p password database_name < database_name.sql

答案 1 :(得分:1)

要将数据库恢复到XAMPP,这些是您需要的:  可以在mysql / data文件夹中找到-.frm,.ibd文件和ibdata1

步骤

  • 安装新的XAMPP

  • 替换mysql / data中的ibdata1

  • 复制要还原的数据库的文件夹[.frm和.ibd] 并粘贴在mysql / data

  • 运行mysql和Viola它可以工作!

  

如果发生#1932错误,只需导入create_tables.sql   来自xampp / phpMyAdmin / sql,这解决了这个问题。

答案 2 :(得分:1)

继续阅读并回答还可以将these files复制并替换到新的xampp文件夹中。

\xampp\mysql\data\mysql

文件:proc.frm,proc.MAD,proc.MAI

答案 3 :(得分:1)

我得到了以下日志:

2020-02-11 14:26:06 0 [ERROR] mysqld: Table '.\mysql\db' is marked as crashed and last (automatic?) repair failed 2020-02-11 14:26:06 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table '.\mysql\db' is marked as crashed and last (automatic?) repair failed 2020-02-11 14:26:06 0 [ERROR] Aborting

好吧,我的工作如下:

  1. 在另一个目录中安装了XAMPP的新实例(例如 C:\ xampp_new)
  2. 将三个db文件从新安装复制回旧安装:
  • C:\ xampp_new \ mysql \ data \ mysql \ db.frm到C:\ xampp \ mysql \ data \ mysql \ db.frm

  • C:\ xampp_new \ MySQL的\数据\的MySQL \ db.MAD到C:\ XAMPP \ MySQL的\数据\ MySQL的\ db.MAD

  • C:\ xampp_new \ mysql \ data \ mysql \ db.MAI到C:\ xampp \ mysql \ data \ mysql \ db.MAI

  1. 从XAMPP启动MySQL服务,然后运行良好。

我希望它对于那些遇到这种错误的人也可能是有用的信息。

在尝试设置权限时要小心。