环境:
Windows 7(XAMPP最新) Apache 2.4.4 PHP 5.5 MySQL 5.6.11
我正在尝试从MySQL 5.1备份数据库并将其导入MySQL 5.6。
在MySQL 5.1中,有一些MyISAM和InnoDB表。我使用mysqldump将SQL文件转储出来,使用--add-drop-database switch。
现在当我回到本地主机并使用MySQL工作台导入SQL文件时,会出现错误:
InnoDB: cannot calculate statistics for table "database"."tables" because the .ibd file is missing.
我尝试使用以下方式删除数据库:
drop schema database
它崩溃了MySQL 5.6,错误如下:
2013-09-10 17:18:23 fc4 InnoDB: Warning: MySQL is trying to drop database `database`.``
InnoDB: though there are still open handles to table `database`.`table`.
在my.ini中我设置:
innodb_force_recovery = 4
我试过了:
有人可以给我一些建议吗?
谢谢。
答案 0 :(得分:0)
事实证明它似乎是一个MySQL 5.6.11问题,我将MySQL改为5.5.30并且一切正常。
答案 1 :(得分:0)
我在Mac OS X上遇到过类似的问题,但是有点奇怪:我在5.6.19之前的版本上运行正常,然后升级到5.6.19,这开始给我上面的错误信息,除了我的表中没有一个使用混合大小写。
事实证明,我的一个数据库使用大写字符作为其第一个字母。这已经很好地工作了很长时间,但是在次要版本升级之后今天早上失败了,并且让我进行了2小时的搜索以找出问题所在。
修复很简单:使用小写版本创建一个符号链接,重新启动mysqld,一切都很好。但是,即使我理解使表保存为大小写的逻辑,也不存在数据库名称不明确的危险,因为操作系统总是会阻止它。