使用CakePHP烘焙时,数据库连接“Mysql”丢失

时间:2013-08-14 18:13:02

标签: cakephp cakephp-bake

我正在通过烘焙命令

在CakePHP中烘焙模型
 ./cake bake model all

我正确配置了database.php。

    public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'root',
    'password' => '',
    'database' => 'mydb',
    'prefix' => '',
    //'encoding' => 'utf8',
);

我在烘焙模型时遇到此错误

#0 /opt/lampp/htdocs/febrics/lib/Cake/Model/Datasource/DboSource.php(262): Mysql->connect()
#1 /opt/lampp/htdocs/febrics/lib/Cake/Model/ConnectionManager.php(107): DboSource->__construct(Array)
#2 /opt/lampp/htdocs/febrics/lib/Cake/Console/Command/Task/ModelTask.php(900): ConnectionManager::getDataSource('default')
#3 /opt/lampp/htdocs/febrics/lib/Cake/Console/Command/Task/ModelTask.php(837): ModelTask->getAllTables('default')
#4 /opt/lampp/htdocs/febrics/lib/Cake/Console/Command/Task/ModelTask.php(123): ModelTask->listAll('default', false)
#5 /opt/lampp/htdocs/febrics/lib/Cake/Console/Command/Task/ModelTask.php(102): ModelTask->all()
#6 /opt/lampp/htdocs/febrics/lib/Cake/Console/Shell.php(389): ModelTask->execute()
#7 /opt/lampp/htdocs/febrics/lib/Cake/Console/Shell.php(386): Shell->runCommand('execute', Array)
#8 /opt/lampp/htdocs/febrics/lib/Cake/Console/ShellDispatcher.php(202): Shell->runCommand('model', Array)
#9 /opt/lampp/htdocs/febrics/lib/Cake/Console/ShellDispatcher.php(68): ShellDispatcher->dispatch()
#10 /opt/lampp/htdocs/febrics/app/Console/cake.php(37): ShellDispatcher::run(Array)
#11 {main}

请让我知道我哪里错了。
致谢

2 个答案:

答案 0 :(得分:2)

将localhost更改为127.0.0.1

出于某种原因,在使用localhost时,它在烘焙时无法通过命令行运行。

答案 1 :(得分:1)

当我们根据database.php文件中的HOST切换配置时,我们通常会遇到此问题。

您是否尝试将数据库切换到任何位置?请注意,$ _SERVER ['HTTP_HOST']在命令行中不可用。