【问题标题】:Got error -1 from storage engine after truncate table截断表后从存储引擎得到错误-1
【发布时间】:2013-09-20 11:48:52
【问题描述】:

我有一个名为 order_line 的 innodb 表,我想截断它。 我收到的消息是来自存储引擎的错误 -1,我的表完全丢失了! 幸运的是,这是我的开发环境,而不是生产环境!

如何取回桌子? 我的磁盘空间是 14 GB,所以这不是问题

请帮忙!

这是我的日志文件所说的:

版本:'5.6.11' 套接字:'' 端口:3308 MySQL 社区服务器(GPL) 2013-09-16 12:41:47 134c InnoDB:文件操作中的操作系统错误号 5。 InnoDB:错误意味着mysqld没有访问权限 InnoDB:目录。也可能是您创建了一个子目录 InnoDB:与数据文件同名。 2013-09-16 12:41:47 134c InnoDB:文件名 .\shopping\orderline.ibd 2013-09-16 12:41:47 134c InnoDB:文件操作调用:“创建”返回操作系统错误 105。 2013-09-16 12:41:47 134c InnoDB:文件操作中的操作系统错误号 5。 InnoDB:错误意味着mysqld没有访问权限 InnoDB:目录。也可能是您创建了一个子目录 InnoDB:与数据文件同名。 2013-09-16 12:41:47 3220 [错误] InnoDB: 无法创建文件 '.\shopping\orderline.ibd' 2013-09-16 12:41:47 3220 [错误] InnoDB:TRUNCATE TABLE 购物/订单行无法创建新表空间 2013-09-16 12:41:47 134c InnoDB:无法计算表 "shopping"."orderline" 的统计信息,因为缺少 .ibd 文件。如需帮助,请参阅 http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html

【问题讨论】:

  • 打开.err文件看看有没有问题
  • 您好,我从 .err 文件中添加了日志,但看不出有什么问题
  • 错误号 5 是 Windows 操作系统 错误代码表示 输入/输出 错误。您很可能有硬件问题或确保您对“\mysql\data”有写权限

标签: mysql


【解决方案1】:

运行以下命令

 ALTER TABLE orderline DISCARD TABLESPACE

 DROP TABLE orderline 

 CREATE TABLE OrderLine ( 
     Your Table Field definitions here
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8

Alter Table & Drop Table 会出错,但会从数据字典中删除该表。

确保您对 Mysql5/Data/ 目录具有访问权限

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-24
    • 1970-01-01
    • 2023-03-03
    • 2012-05-24
    • 1970-01-01
    • 2012-11-05
    • 2020-07-22
    • 2012-12-30
    相关资源
    最近更新 更多