无法在MySql工作台中删除架构

Tia*_*Tia 9 mysql mysql-workbench

我在MySQL Workbench中有一个数据库.通常我可以在我的数据库中删除表或模式.但是当我尝试在数据库中删除模式或表时,它不起作用,因为:

查询期间与MySQL服务器的连接丢失

我试图优先更改DBMS连接读取超时,但我仍然无法删除此架构.

Moc*_*ing 2

我只是回答这个问题,因为我无法标记它,因为它有开放的赏金。

这个问题已经在数据库管理员堆栈交换上得到了解答。请记住数据库与模式同义。

恐怕你不能删除数据库。

问题出在损坏的表上。不一定是 .ibd文件。它很可能是 ibdata1 中的数据字典条目(请参阅 ibdata1 的图示)。

我写过这个Mar 02, 2012: https: //dba.stackexchange.com/questions/14259/innodb-table-select-returns-error-2006-hy000-mysql-server-has-gone-away-after/14283#14283

虽然很乏味,但您可以执行以下操作来保存损坏的数据库中的其他表bad_db

步骤01)USE bad_db

步骤 02) 运行SELECT COUNT(1) FROM tablename;中的每个表 bad_db。当您尝试运行计数时,收集不会使 mysqld 崩溃的所有表名。

步骤 03) 运行mysqldump -u... -p... bad_db table1 table2 ... tableN > bad_db_goodtables.sql 所有没有使 mysqld 崩溃的表。

如果您要使用不同的数据库名称,请重新加载 bad_db_goodtables.sql到该新数据库中。

如果您需要数据库同名,坏消息!您将彻底检修 ibdata1。还有更多步骤:

步骤 04) mysqldump 所有其他数据库到单独的转储文件中

步骤 05) 执行 InnoDB 基础设施清理(请参阅我的Oct 29, 2010StackOverflow 帖子

步骤 06) 重新加载所有其他 mysqldumps 好的数据库。

试一试 !!!