2012-04-28 3 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} 

이 내 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에서 어떻게 가리킬 수 있는가? 나는 내가 database.configuration 파일에이 줄을 추가하려고

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

당연히,이 라인에 어떤 도움을 .bashrc에 변경하지으로 변경하려고 : '포트'=> '/ 옵션/lampp를/var에/mysql/mysql.sock ' 하지만 도움이되지 못했습니다.

나는 비슷한 문제가 있었지만 우분투에는 mac osx가 들어 있지 않은 창 중 하나입니다.

+0

왜 XAMPP를 사용하고 있습니까? https://help.ubuntu.com/11.04/serverguide/httpd.html – Wylie

+0

@Wylie mysql을 사용하면 아파치가 자동으로 구성되므로 두통이 줄어들 것이라고 생각했기 때문에. – tutak

답변

0

pdo_mysql 확장을 활성화해야합니다. 웹 환경에서 이미 활성화되었을 수 있지만 우분투는 cli와 web의 php.ini 구성을 구분합니다.

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

+0

/opt/lampp/etc/php.ini에서 extension = "pdo_mysql.so"의 주석을 제거해야했습니다. – tutak

0

를 활성화해야 (추가) OSX (XAMPP) 사용자 :

방금 ​​광고 D 당신의 app/Config/database.php DB를 설정 배열에 다음

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

하기 위해 :

바로 당신의 /app/Config/database.php 구성 변수에 다음을 추가 :

그래서, 당신은 단지 OSX 사용자를 돕기 위해 CLI

의 내선
관련 문제