CakePHP无任何线索地迁移MDB2错误

时间:2015-01-02 09:27:20

标签: cakephp-1.3 ubuntu-14.04 migrate mdb2

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

$../cake/console/cake migrate

我得到了 MDB2 ERROR ,但没有任何进一步的线索,因此我很难谷歌获取有关如何解决它的信息。错误如下所示:

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

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


   ** Error: MDB2 ERROR **

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

我用Apache和MySQL运行ubuntu 14.04。

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

提前多多感谢。

1 个答案:

答案 0 :(得分:0)

最后,我设法获得了更多有用的信息,而不仅仅是 *错误: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错误 更有意义的错误消息,请编辑 migration.php 文件以正确显示错误日志消息

干杯!!!