【问题标题】:How can I recover currupt database in magento?如何在 magento 中恢复损坏的数据库?
【发布时间】:2013-08-08 22:58:33
【问题描述】:

我设置了新的 xampp(最新版本)并从旧 xampp(有点低版本)复制 mysql/data 文件夹。

当我通过 phpmyadmin 访问我的 magento 项目数据库时,我很震惊。这里只列出了 19 个表。

我检查了mysql/data目录,数据库文件夹和表名(*.frm)的文件都存在。

请告诉我如何取回完整的数据库?

PS:我正在使用窗口 7。

【问题讨论】:

  • 为什么不直接将旧数据库转储为 sql 格式并恢复该文件,而不是复制整个目录?
  • 是的,你是对的,但我在这件事发生后才意识到这一点。现在做什么?你有什么解决办法吗?
  • 我的解决方案很简单....删除新的 xaamp 安装,删除文件夹,然后重新安装....从旧的 mysql 数据库中创建一个 sql 转储,然后在新的数据库中恢复它安装(使用 phpmyAdmin 或 HeidiSql)

标签: mysql database magento innodb recovery


【解决方案1】:

在 Magento 中,大多数表都是 innodb(除了您在新安装中找到的那 19 个)。对于 innodb 表,您不能只从数据文件夹中复制表文件。 See this for more explanations.
如果您无法创建旧数据库的转储并在​​新 xampp 中恢复它,它可能会丢失。

【讨论】:

  • 感谢您的友好信息,但现在为时已晚。你能就我目前的情况给我建议任何解决方案吗?当我在 sqlYog 中浏览数据库时,它列出了所有表,但无法浏览这些表。它会抛出类似“表不存在”的错误。
【解决方案2】:

复制 Magento 数据库时,请务必使用“单一事务”。否则会出问题。

这就是我使用命令行的方式:

  1. 将现有表转储到文件中:

    mysqldump -u [YOUR USER] -p'[YOUR PASS]' --single-transaction --database [Your DB Name] > [FILE-NAME-TO-DUMP.sql]

  2. 然后将文件复制到你要创建数据库的服务器上。

  3. 创建将在新服务器上使用的数据库
  4. 运行以下命令

    cat [FILE-NAME-TO-DUMP.sql] | grep -vi "^USE" | grep -vi "^创建数据库" | mysql -u [YOUR USER] -p'[YOUR PASS]' --database [Your DB Name]

【讨论】:

  • 有用的信息!但请就我目前的情况向我提出任何解决方案?当我在 sqlYog 中浏览数据库时,它列出了所有表,但无法浏览这些表。它会抛出类似“表不存在”的错误。
猜你喜欢
  • 1970-01-01
  • 2013-08-18
  • 2019-04-06
  • 1970-01-01
  • 2011-09-25
  • 2012-08-27
  • 2019-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多