Google Cloud MySQL 5.7表异常:无.frm文件但表空间存在
MySQL 5.7(Google Cloud SQL)表元数据不一致问题
环境信息
- MySQL 5.7
- Google Cloud SQL
- 存储引擎:InnoDB
问题重现及执行结果
1. 检查临时表
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE '%#sql%';
响应:
[]
2. 查询目标表元数据
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE '%company_metadata%'
响应:
[(1155, '<db_name>/company_metadata', 33, 12, 1075, 'Barracuda', 'Dynamic', 0, 'Single')]
3. 尝试重命名表
RENAME TABLE company_metadata TO old_company_metadata
响应:
1017 (HY000): Can't find file: './<db_name>/company_metadata.frm' (errno: 2 - No such file or directory)
4. 尝试查询表数据
SELECT * FROM company_metadata
响应:
There was an error in your query: 1146 (42S02): Table '<db_name>.company_metadata' doesn't exist
5. 尝试重建表
CREATE TABLE IF NOT EXISTS company_metadata(pk_cometa_id BIGINT PRIMARY KEY AUTO_INCREMENT,...)
响应:
There was an error in your query: 1813 (HY000): Tablespace '`<db_name>`.`company_metadata`' exists. Rolling Back. Please wait... Roll Back Completed Disconnecting From Database. Please Reconnect Again
求助需求
已查阅多篇Stack Overflow文章及Google Cloud官方帮助文档,问题仍未解决。现需明确:如何删除INFORMATION_SCHEMA.INNODB_SYS_TABLES中显示的company_metadata表记录?该记录是数据库中此表存在的唯一证据。
内容的提问来源于stack exchange,提问作者formerlyanakin
相关产品推荐
相关产品推荐

