【问题标题】:cake bake console error:Database connection missing蛋糕烘焙控制台错误:缺少数据库连接
【发布时间】:2012-04-28 09:43:59
【问题描述】:

我使用控制台烘焙了一个应用程序,从 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}

这就是我的 opt/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 来改变它,当然没有帮助

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

我尝试将此行添加到 database.configuration 文件中: '端口' => '/opt/lampp/var/mysql/mysql.sock' 但它没有帮助。

我确实发现了一些类似的问题,但它们要么适用于 mac osx 的 windows,要么适用于 ubuntu。

【问题讨论】:

标签: cakephp xampp cakephp-2.0 php ubuntu-11.10


【解决方案1】:

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

只需将以下内容添加到您的 app/Config/database.php db 配置数组中:

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

【讨论】:

    【解决方案2】:

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

    所以,你只需要启用 cli 的扩展

    【讨论】:

    • 我不得不在 /opt/lampp/etc/php.ini 下取消注释 extension="pdo_mysql.so"
    【解决方案3】:

    为了帮助 OSX 用户:

    只需将以下内容添加到您的 /app/Config/database.php Config-Variable:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多