我在 Google Cloud SQL 上托管的数据库之一遇到问题。
如果我发出命令
SHOW TABLES
作为 root,该表不会列出,如果我尝试创建该表,则会导致错误:
Error Code: 1813. Tablespace for table '`db`.`the_table`' exists. Please DISCARD the tablespace before IMPORT.
如果我尝试从表格中进行选择,它会显示:
Error Code: 1146. Table 'db.tha_table' doesn't exist
当我在网络上搜索时,常见的解决方案是修改 .ibd 文件等。问题是我无权访问 Google Cloud SQL 上的文件系统。
关于如何从表空间中删除表并重新创建它有什么想法吗?
我们尝试重新启动云 SQL 实例,但没有成功。
非常感谢任何帮助!
最佳答案
一个可能的原因是当你运行alter table命令时你的数据库崩溃了,然后发生的事情是mysql删除了表条目,但它没有达到删除磁盘上文件的步骤。
一种可能的解决方案是创建另一个具有完全相同架构但名称不同的表,创建后,将该表重命名为您在原始表中使用的名称。
关于mysql - Google Cloud SQL 中丢失的表 - MySQL 错误代码 1813。如何重新创建它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34857804/