【问题标题】:Innodb crashed databaseInnodb 数据库崩溃
【发布时间】:2014-05-06 19:15:01
【问题描述】:

我有一个innoDB 数据库。

昨天我的数据库崩溃了,无法恢复,所以直接从/var/lib/mysql删除了。
在此之后,我从转储中恢复了数据库,但收到如下消息:

错误 1050 (42S01):表 'production.itex_product_props' 已存在

要解决这个问题,我可以做两件事:

  1. 用另一个名字创建数据库
  2. 在我的服务器上创建所有数据库的转储,删除数据库,删除像ibddata1 这样的文件,并从转储中恢复所有数据库。

我可以通过其他方式修复此错误吗?

【问题讨论】:

  • 为什么直接从数据文件夹中删除数据库?

标签: mysql innodb


【解决方案1】:

您只需要提示:确保您的 mysql 数据库与您的存储文件一致。 由于 production 数据库似乎还在,可能你删除了 /var/lib/mysql 本地文件,但 mysql 认为删除的数据库仍在原处。

当您对文件系统进行更改时,停止和启动 mysql 服务是安全的。 此外,通过查询代替 shell 命令对数据库进行更改更安全。

【讨论】:

  • 我停在1.mysql的开头,2.然后删除本地文件,3.mysql的运行。基本停止输出:show databases 并停止输出 information_schema
  • 在这种情况下,您崩溃的数据库是否名为 production
  • 是的,它被命名为生产
  • 所以我可以假设这个其他问题/答案可以解释您的问题:stackoverflow.com/questions/3302476/…
【解决方案2】:

数据库是否列在 SHOW DATABASES; 中?如果是这样,请尝试 DROP DATABASE 并在此之后执行导入。

【讨论】:

  • this database is not displayed when the show databases; 进一步我做了:mysqladmin create dbname; mysql-uuser-p dbname < /root/dumpfile.sql and there was an error contains in the top
  • 好的,我还有一个想法可能会有所帮助:尝试创建所需的数据库,选择它'use db_name;'和“刷新表;”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-14
  • 2017-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多