大家好日子!
昨天,当我运行MySQL时,我的计算机冻结了。我不记得有任何交易正在进行 - 我只是用它来进行一些开发。
今天,我尝试访问其中一个数据库afl_discounts,我一直在努力,我意识到它不能“描述”我的任何表格;事实上,我似乎唯一能做的就是列出表格,其他任何东西只是吐出来的:
ERROR 1146 (42S02): Table 'afl_discounts.users' doesn't exist.
或类似的东西。我在计算机冻结的同时检查错误日志:
2014-08-02 23:18:10 260 [Note] InnoDB: Database was not shutdown normally!
2014-08-02 23:18:10 260 [Note] InnoDB: Starting crash recovery.
2014-08-02 23:18:10 260 [Note] InnoDB: Reading tablespace information from the .ibd files...
2014-08-02 23:18:11 260 [Note] InnoDB: Restoring possible half-written data pages
2014-08-02 23:18:11 260 [Note] InnoDB: from the doublewrite buffer...
2014-08-02 23:18:11 7fff74dc7310 InnoDB: Error: table 'afl_discounts/companies'
InnoDB: in InnoDB data dictionary has tablespace id 20,
InnoDB: but the tablespace with that id has name AFL_Discounts/companies.
InnoDB: Have you deleted or moved .ibd files?
InnoDB: Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting-datadict.html
InnoDB: for how to resolve the issue.
对于那个数据库中的每个表都说这个,其他一切似乎没问题 - 我甚至使用了mysqlcheck。我提到了链接,我有点失落。另外,请注意冲突中的id名称实际上只是因情况而异。处理这个问题的最佳方法是什么?我完全弄乱了我的数据库吗?
哦,我正在运行OSX 10.9,MySQL 5.6.19。
任何帮助将不胜感激!谢谢!
答案 0 :(得分:0)
所以,
我在保存.ibd文件的文件夹上做了一个chmod,并注意到权限是-700 (drwx ------)。为什么会出现这种情况是任何人的猜测,但是在运行chmod 755(drwxr-xr-x)之后,就可以在'afl_discounts'文件夹和运行mysqlcheck,报告所有内容' OK'。数据库有效。
如果有人能够了解为什么会发生这种情况,我会非常感激。