0

我下载了一个使用 CakePHP 1.3.16 的网站,并有一堆 .yml 文件用于创建和设置数据库。当我执行:

$../cake/console/cake migrate

我收到一个MDB2 错误,但没有任何进一步的线索,所以我很难用谷歌搜索有关如何解决它的信息。错误如下所示:

  __  __  _  _  __     ___     __   __   __  ___    __  _  _  __ 
 |   |__| |_/  |__    | | | | | _  |__| |__|  |  | |  | |\ | |__ 
 |__ |  | | \_ |__    | | | | |__| | \_ |  |  |  | |__| | \|  __|

 App : app
 Path: /home/coolia/Projects/cooltra/coolia/web/app


   ** Error: MDB2 ERROR **

  ---------------------------------------------------------------

我正在使用 Apache 和 MySQL 运行 ubuntu 14.04。

有谁知道如何通过任何日志文件或详细选项获取有关错误的更多信息,或者更好的是如何解决它?

提前非常感谢。

4

1 回答 1

0

最后,我设法获得了更多有用的信息,而不仅仅是* Error: MDB2 ERROR *。要获得更多信息,我必须编辑迁移脚本(对于 cakePHP 版本 1.3,它是 /app/plugins/migrations/vendors/shells/migrate.php)。

进入后,检查所有错误消息并为错误消息添加自定义且易于跟踪的文本,我能够找到发生错误的行。该行是:

if (PEAR::isError($this->_db)) $this->error('MDB2 ERROR', $this->_db->getDebugInfo());

“有趣”的事情是错误日志消息与 PHP 似乎不理解的逗号 (,) 连接,因此错误消息日志丢失并且不显示。我刚刚用点 (.) 替换了逗号 (,),我就可以看到错误消息。然后该行保持为:

if (PEAR::isError($this->_db)) $this->error('MDB2 ERROR' . $this->_db->getDebugInfo());

打印出错误消息后,解决问题非常容易。问题是用于连接数据库的用户没有足够的权限来连接它。

所以,对我来说,主要问题是获取有关错误的相关信息。要获得比MDB2 ERROR更有意义的错误消息,请编辑您的migration.php文件以正确显示错误日志消息。

干杯!!!

于 2015-01-02T12:00:57.943 回答