2012-04-28 61 views
0

我使用控制台烘焙了一个应用程序,并且从URL中看起来一切正常。但是,当我要烤的应用程序文件夹内的模型,我得到一个错误:蛋糕烘焙控制台错误:数据库连接丢失

 Error: Database connection "Mysql" is missing, or could not be created. 
     #0 /opt/lampp/cake/lib/Cake/Model/ConnectionManager.php(98): DboSource->__construct(Array) 
     #1 /opt/lampp/cake/lib/Cake/Console/Command/Task/ModelTask.php(837): ConnectionManager::getDataSource('default') 
     #2 /opt/lampp/cake/lib/Cake/Console/Command/Task/ModelTask.php(782): ModelTask->getAllTables(NULL) 
     #3 /opt/lampp/cake/lib/Cake/Console/Command/Task/ModelTask.php(863): ModelTask->listAll(NULL) 
     #4 /opt/lampp/cake/lib/Cake/Console/Command/Task/ModelTask.php(186): ModelTask->getName() 
     #5 /opt/lampp/cake/lib/Cake/Console/Command/Task/ModelTask.php(84): ModelTask->_interactive() 
     #6 /opt/lampp/cake/lib/Cake/Console/Command/BakeShell.php(102): ModelTask->execute() 
     #7 /opt/lampp/cake/lib/Cake/Console/Shell.php(375): BakeShell->main() 
     #8 /opt/lampp/cake/lib/Cake/Console/ShellDispatcher.php(177): Shell->runCommand(NULL, Array) 
     #9 /opt/lampp/cake/lib/Cake/Console/ShellDispatcher.php(69): ShellDispatcher->dispatch() 
     #10 /opt/lampp/cake/lib/Cake/Console/cake.php(24): ShellDispatcher::run(Array) 
     #11 {main} 

这是我在我的选择/ LAMPP/htdocs中/ cakapp/CONFG/database.php中

<?php 
    class DATABASE_CONFIG { 

     public $default = array(
      'datasource' => 'Database/Mysql', 
      'persistent' => false, 
      'host' => '127.0.0.1', 
      'login' => 'root', 
      'password' => 'alpha', 
      'database' => 'cakedb', 
     ); 
    } 

我的PHP --ini返回:

 Configuration File (php.ini) Path: /etc/php5/cli 
     Loaded Configuration File:   /etc/php5/cli/php.ini 
     Scan for additional .ini files in: /etc/php5/cli/conf.d 
     Additional .ini files parsed:  /etc/php5/cli/conf.d/pdo.ini 

而phpinfo()函数给我这个路径:

 Configuration File (php.ini) Path: /opt/lampp/etc 
     Loaded Configuration File :/opt/lampp/etc/php.ini 

以上两个输出结果是不是矛盾?我的意思是php --ini应该输出xampp的php.ini而不是另一个,我怎样才能让它指向xampp的php.ini?我试图改变的.bashrc这一行,没有任何帮助ofcourse

export PATH=/opt/lampp/bin:$PATH 

我想加入这一行的database.configuration文件来改变它: “口” =>“/选择/ LAMPP的/ var/mysql/mysql.sock' 但它没有帮助。

我确实发现了一些类似的问题,但是它们要么是针对mac osx的windows,而是针对ubuntu的。

+0

为什么使用xampp? https://help.ubuntu.com/11.04/serverguide/httpd.html – Wylie 2012-04-28 22:36:56

+0

@Wylie因为我觉得这样会比较头疼,用mysql,apache会自动配置。 – tutak 2012-04-29 01:09:44

回答

0

您需要启用pdo_mysql扩展,它可能已经启用了您的Web环境,但ubuntu分开cli和web的php.ini配置。

所以,你只需要启用CLI

扩展
+0

我必须在/opt/lampp/etc/php.ini下取消注释extension =“pdo_mysql.so” – tutak 2012-05-01 20:27:30

0

为了帮助OSX用户:

只需添加以下到您的/app/Config/database.php配置变量:

'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock'

1

为了帮助(更多)OSX(XAMPP)用户:

只是广告d将以下内容添加到您的app/Config/database.php db配置阵列中:

'unix_socket' => '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock'