MySQL Error number: MY-010766; Symbol: ER_DD_CANT_FETCH_TABLE_DATA; SQLSTATE: HY000 报错 故障修复 远程处理

文档解释

Error number: MY-010766; Symbol: ER_DD_CANT_FETCH_TABLE_DATA; SQLSTATE: HY000

Message: Error in fetching %s.%s table data from dictionary

ER_DD_CANT_FETCH_TABLE_DATA 错误是MySQL 8.0.23版本中引入的,该错误表明我们无法获取表数据。

错误说明:

MySQL ER_DD_CANT_FETCH_TABLE_DATA错误表明当我们尝试从schema_table_statistics 或者schema_table_statistics_with_buffer根据表名获取建议的表统计信息时无法完成操作。表统计信息主要是涉及表索引大小、中间报表的行大小,总行数等信息。

常见案例

ER_DD_CANT_FETCH_TABLE_DATA错误最常见于尝试在查询中加载表大小时,如SELECT * FROM \`table_name\` 返回ER_DD_CANT_FETCH_TABLE_DATA错误信息。

解决方法:

首先,确认MySQL版本是8.0.23或更高,因为ER_DD_CANT_FETCH_TABLE_DATA错误是在8.0.23版本中引入的。如果未更新,请立即更新MySQL版本。

其次,重启mysqld服务进程并清除查询缓存(FLUSH TABLES)。许多ER_DD_CANT_FETCH_TABLE_DATA错误仅可以通过重置mysquld服务和清空缓存解决,这是一种原因是表数据可能过期。

最后,如果两个方法仍然失败,可以尝试清除 information_schema 表中的数据,然后重新计算该表的表统计信息:

“`

ANALYZE TABLE table_name;

“`

输入这个命令,MySQL Server将自动重新读取表中的数据并计算各种统计信息。在大多数情况下,这项操作会恢复表数据并解决ER_DD_CANT_FETCH_TABLE_DATA错误。


数据运维技术 » MySQL Error number: MY-010766; Symbol: ER_DD_CANT_FETCH_TABLE_DATA; SQLSTATE: HY000 报错 故障修复 远程处理