gpt4 book ai didi

innodb - 无法删除 MySQL InnoDB 表

转载 作者:行者123 更新时间:2023-12-05 07:36:12 26 4
gpt4 key购买 nike

我正在使用 MySQL 5.1.56

我有一个包含大约 70 个表的数据库,我有一个特定损坏的表的问题,例如表_X

当我尝试访问表时mysql> 从 Table_x 中选择 *;ERROR 1105 (HY000): 无法读取.par 文件

我无法向表中添加分区。

当我尝试删除表格时,我看到以下错误。mysql> 删除表 Table_X;ERROR 1051 (42S02): 未知表 'Table_X'

创建查询报错:ERROR 1050 (42S01): Table 'Table_X' already exists.

在我的数据库文件位置,我可以看到相应的 Table_X.frm、Table_X.ibd 和 Table_X.par 文件。但除此之外,我还在该位置看到一个文件“#sql-Table_X.frm”。

当我检查 information_Schema 数据库中的“Tables”表时,该特定表的 Engine 值为 NULL,而它本应为 InnoDb。该表似乎以某种方式损坏。

我尝试了 Flush-tables 命令,但也没有帮助。我仍然无法删除并重新创建表。

我不想备份这个特定的表,但我需要保留数据库的其他表。有什么办法,我可以只重新创建这个单独的表,而不必恢复整个数据库。

最佳答案

你可以尝试用下面的语句修复表:

REPAIR TABLE Table_X;

注意,这样的查询可能会导致数据丢失,但由于您正在尝试删除表,我想这对您来说不是问题。

您也可以尝试使用 FRM 文件作为表格的来源

REPAIR TABLE Table_X USE_FRM;

PS:你能给我们以下查询的结果吗?

CHECK TABLE Table_X;

引用资料:

https://www.tutorialspoint.com/mysql/mysql_repair_table_statement.htm https://www.tutorialspoint.com/mysql/mysql_check_table_statement.htm

关于innodb - 无法删除 MySQL InnoDB 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49231981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com