mysql - 删除 MySQL innodb 中的孤立临时表

标签 mysql innodb

在 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 中看到该表。我做错了什么?

最佳答案

我找到了更简单的方法,效果很好。如果您需要修复许多服务器,它甚至可以编写脚本。

  1. 创建空的临时数据库。让它成为tmp1234

  2. 将所有表从原始数据库移至tmp1234

  3. 删除原来的数据库(现在是空的,所有表都在tmp1234中)

  4. 重新创建原始数据库

  5. 将所有表从临时数据库移至原始数据库。 删除空的临时数据库。

查看帖子 Resolving ERROR 1050 (42S01) at line 1: Table ‘sakila/#sql-ib712′ already exists 中的一些详细信息

关于mysql - 删除 MySQL innodb 中的孤立临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27185026/

相关文章:

mysql - mysql 驱动程序错误 : javax. servlet.ServletException : java. lang.ClassNotFoundException : com. mysql.jdbc.Driver

java - InnoDB 全文搜索

mysql - MySQL InnoDB 是否使用 READ_COMMITTED 隔离级别锁定多行?

PHP重复更新并插入Innodb,更新找不到正确的记录

mysql - 如果重复值则连接数组 (Laravel)

php - 在php中从sqlite3数据库中获取数据

php - 我如何模式化 php 数据库调用?

mysql - InnoDB vs MyISAM 用于小表 WordPress 博客

php - Mysql 从 myISAM 转换为 innodb 时出错

python - 定期重新运行相同查询时无法获取最新行