Mysql 为什么信息表\u架构被损坏?

Mysql 为什么信息表\u架构被损坏?,mysql,information-schema,Mysql,Information Schema,我想从模式的信息列中获取信息。我执行以下命令: root:information_schema> select * from COLUMNS; root:information_schema> repair table COLUMNS; 但它会出现错误: 错误126 HY000:表'/tmp/sql_11b6_0.MYI'的密钥文件不正确;试着修理它 所以我想修桌子。我执行以下命令: root:information_schema> select * from COLUMNS; root:inf

我想从模式的信息列中获取信息。我执行以下命令:

root:information_schema> select * from COLUMNS; root:information_schema> repair table COLUMNS; 但它会出现错误:

错误126 HY000:表'/tmp/sql_11b6_0.MYI'的密钥文件不正确;试着修理它

所以我想修桌子。我执行以下命令:

root:information_schema> select * from COLUMNS; root:information_schema> repair table COLUMNS; 但再次出现错误,错误内容如下:

错误1044 42000:拒绝用户“root”@“localhost”访问数据库“information\u schema”


我不知道为什么根用户没有权限修复表

当您看到类似“/tmp/sql\uxxxxx\u X.MYI”的内容时,问题是您的文件系统已满,需要创建的临时文件无法写入。删除任何不必要的文件并重试。

我认为这并不意味着列表本身已损坏;它可能是架构中的任何表。信息_架构包含视图,而不是表,因此它们不需要修复。有几个问题:在由show变量(如“tmpdir”)标识的目录中是否有足够的可用空间;?如果是这样,您能从信息_schema.tables;中选择*吗;?如果没有,是否可以从信息\u schema.tables;中选择表\u name、表\u schema;?如果是这样的话,您能从信息中选择表\u模式、表\u名称吗;?在某些情况下,对于信息模式,您选择的特定列决定了查询深入到内部的程度,因此我们需要尽可能接近这一行,如果可能的话,不要试图指出下一步要看的地方。@Michael-sqlbot谢谢!这是我的“tmpdir”,没有足够的可用空间。。