【问题标题】:CakePHP: Missing database tableCakePHP:缺少数据库表
【发布时间】:2010-03-30 03:32:52
【问题描述】:

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

我尝试了各种方法来解决这个问题,但都没有成功:

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

我认为我已经消除了明显的问题,而且我的研究没有任何结果。我觉得我错过了一些明显的东西。有什么想法吗?

【问题讨论】:

  • 有趣...我可以请您发布一些涉及ModelController 类的代码吗?

标签: php cakephp


【解决方案1】:

您是否尝试检查生产数据库是否被正确提取?在生产服务器上尝试回显,看看它选择了什么数据库。 此外,请确保表的案例名称与生产服务器上的不同。 MySQL 可以配置为在 'Table' 和 'table' 之间产生差异。 您可能有一些代码行根据 TLD 选择不同的数据库,就像我看到的很多次一样。

【讨论】:

  • 好主意,但没有帮助。 Cake 试图获取的表名是“accounts”,它是数据库中的“accounts”,我将 lower_case_table_names 设置为 1,但都没有运气。
  • 另外,我不明白你在 MySQL 上下文中的 echo 是什么意思。你能解释一下吗?
  • 我是说您应该在视图中回显实际参数,以便查看实际选择的数据库是什么。原始但有用:)
【解决方案2】:

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

【讨论】:

  • 这不是“史诗般的失败”……更像是史诗般的失败!
  • 高效桶! -- 对不起,我搞砸了
猜你喜欢
  • 1970-01-01
  • 2010-11-03
  • 2013-02-09
  • 1970-01-01
  • 2019-03-26
  • 2013-07-14
  • 1970-01-01
  • 2017-05-04
  • 2014-02-20
相关资源
最近更新 更多