0

我有一个名为 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
4

1 回答 1

0

运行以下命令

 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/ 目录

于 2013-09-16T14:14:32.390 回答