MYSQL:删除与损坏的数据库相关的所有内容

时间:2013-12-27 12:03:20

标签: mysql innodb

我的开发环境中有一个损坏的数据库,我无法访问 - 可能是由于系统崩溃。因为我不能DROP数据库(我不记得为什么 - 现在不再重要)我只是删除了mysql / data中的数据库文件夹。

这显然不是一个好主意。在创建具有相同名称的新数据库之后,数据库中仍然存在一些表空间定义。当我尝试创建新表时,我得到以下错误:

表'database_nametable_name'的表空间存在。请在IMPORT之前删除表空间。

有没有一种可行的方法来摆脱给定数据库的所有引用/索引/表空间信息?当我尝试使用相同的名称DROP新创建的数据库时,我得到: “ERROR 2013(HY000):查询期间与MySQL服务器的连接丢失”。

2 个答案:

答案 0 :(得分:0)

当你遇到这样的情况时,最好的办法是:

  1. 备份您的数据库
  2. 删除整个数据库
  3. 从备份恢复数据库

答案 1 :(得分:0)

对于每个表,运行以下两个查询:

    ALTER TABLE tablename DISCARD TABLESPACE;
    ALTER TABLE tablename IMPORT TABLESPACE;

如果有太多的表只是编写一个脚本来使用SHOW TABLES循环它们,然后是上面的两个查询。