2010-03-30 152 views
1

我有一个本地运行良好的CakePHP应用程序。我将它上传到生产服务器,并且使用数据库连接的第一页出现“缺少数据库表”错误。当我查看控制器转储时,它正在抱怨第一个表。CakePHP:缺少数据库表

我已经试过各种东西来解决这个问题,没有运气:

  • 我已经证实,在命令行中我可以在database.php中
  • 给定的MySQL的凭据登录
  • 我已经确认这个表存在
  • 我试过使用MySQL根凭证(暂时)来查看问题是否与用户的权限有关。出现同样的错误。
  • 我调试级别当前设置为3
  • 我已经删除
  • 我已经设置777个权限上/应用/ tmp目录*
  • 我确认/应用程序的/ tmp /缓存的全部内容我可以在使用应用程序使用的MySQL凭据登录时在commant行MySQL上运行DESCRIBE命令
  • 我已验证CakePHP日志文件仅包含我在浏览器窗口中设置的错误。
  • 我试过在SO
  • 我用Google搜索周围所有的建议我能找到类似的帖子,并没有发现任何其他的想法

我想我已经消除了明显的问题和我的研究并没有改变任何事情。我觉得我失去了一些明显的东西。有任何想法吗?

+0

有趣......我可能会问你发布一些涉及'Model'和'Controller'类的代码吗? – 2010-03-30 03:35:37

回答

0

您是否尝试检查生产数据库是否正确拾取?在生产服务器上尝试echo,并查看它选择的数据库。 另外,请确保表格不具有不同的大小写名称,而不是生产服务器上的大小写名称。 MySQL可以配置为“表”和“表”之间的区别。 您可能有一些代码行选择基于顶级域名的不同数据库,就像我看过很多次那样。

+0

好主意,但没有帮助。表名称Cake试图得到的是“accounts”,它是数据库中的“accounts”,我将lower_case_table_names设置为1,都没有运气。 – Justin 2010-03-30 04:02:36

+0

另外,我不明白你在MySQL上下文中的意思。你可以解释吗? – Justin 2010-03-30 04:04:05

+0

我在说你应该在视图中回显实际参数,以查看实际选定的数据库是什么。原始但有用:) – 2010-03-30 20:38:29

0

史诗在我的部分失败。 database.php中的数据库名称末尾有空格。有趣的是,这没有返回连接问题(也许他们在测试连接时修剪名称?)。

+1

这不是一个“史诗般的失败”......它更像是一个EPHIC失败! – 2010-03-30 15:36:34

+2

大声笑。或者,也许“史诗般的失败” – Justin 2010-03-30 19:43:03

+0

Efic桶! - 对不起,我找到了 – starlocke 2013-08-05 22:02:24