[英]mysql can't drop corrupt innodb table
因此,我正在处理一个MySQL服务器,该服务器的磁盘空间不足,并且大多数InnoDB表当然被损坏了。 我试图删除并重新创建损坏的表,但是MySQL不允许我对它们做任何事情,包括修复。 如您所见,这无穷无尽。 应该注意的是,只有一张表似乎会导致这些错误。
mysql> drop table myschema.mytable;
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql> repair table myschema.mytable;
#results in the following
| myschema.mytable | repair | Error | Out of memory; restart server and try again (needed 2 bytes) |
| myschema.mytable | repair | Error | Incorrect information in file: './myschema/mytable.frm' |
| myschema.mytable | repair | error | Corrupt
mysql> describe myschema.mytable;
ERROR 1037 (HY001): Out of memory; restart server and try again (needed 2 bytes)
如果停止服务器并移开表的.frm和ibd文件,然后重新启动,则无法重新创建它,因为服务器说它已经存在(即使在INFORMATION_SCHEMA中看不到)。 在这种状态下,我也无法删除它,因为服务器说它不在那儿。
我一直都在寻找答案,但此时此刻,我不是DBA,所以迷路了。 我不知道如何修复该表,也无法解决该表。
有什么建议么?
我不确定这时的回答对您是否有用,但我想它会帮助其他人。
这不是很常见的问题。 造成这种损坏的原因可能有所不同,但解决方法很简单。
You have to dump your table and recreate it again.
我们可以通过在my.cnf文件中设置innodb_force_recovery=1
参数来实现此目的,然后重新启动mysql。
请阅读此链接以获取有关此参数的更多信息。 http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html
解决问题后,即可删除该参数。
干杯!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.