在 unubntu 上运行 mysql 5.6.19。崩溃后留下一个很大的临时表。想摆脱它,如下所述:http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting-datadict.html 。我正在运行:
mysql -h 127.0.0.1 -u<username> -p<password> mydb -e "drop table \`#mysql50##sql-ib137812\`;"`
并在第 1 行收到“错误 1051 (42S02):未知表 'mydb.#sql-ib137812'。
我确认 .frm 和 .ibd 文件都已就位,并且我可以在 innodb_sys_tables 中看到该表。我做错了什么?
最佳答案
我找到了更简单的方法,效果很好。如果您需要修复许多服务器,它甚至可以编写脚本。
创建空的临时数据库。让它成为tmp1234
将所有表从原始数据库移至tmp1234
删除原来的数据库(现在是空的,所有表都在tmp1234中)
重新创建原始数据库
将所有表从临时数据库移至原始数据库。 删除空的临时数据库。
查看帖子 Resolving ERROR 1050 (42S01) at line 1: Table ‘sakila/#sql-ib712′ already exists 中的一些详细信息
关于mysql - 删除 MySQL innodb 中的孤立临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27185026/