cakephp cakephp-2.0

Error de CakePHP bake: Falta la conexión de la base de datos "Mysql", o no se pudo crear



cakephp-2.0 (5)

Ya revisé otras preguntas y respuestas sobre mi problema y nada parece ayudar a resolverlo.

Estoy usando vagrant percise64 (servidor Ubuntu 12.04) con lámpara instalada. En mi host (escritorio) tengo mi directorio myfinalproject que contiene la versión extraída de CakePHP 2.3.5. Configuré todo el CakePHP requerido y en la página generada de CakePHP dice que "Cake puede conectarse a la base de datos".

Cuando trato de hornear un nuevo Modelo / Controlador o Todos obtengo el siguiente error:

Welcome to CakePHP v2.3.5 Console --------------------------------------------------------------- App : app Path: /home/shahar/development/myfinalproject/app/ --------------------------------------------------------------- Interactive Bake Shell --------------------------------------------------------------- [D]atabase Configuration [M]odel [V]iew [C]ontroller [P]roject [F]ixture [T]est case [Q]uit What would you like to Bake? (D/M/V/C/P/F/T/Q) > m --------------------------------------------------------------- Bake Model Path: /home/shahar/development/myfinalproject/app/Model/ --------------------------------------------------------------- Use Database Config: (default/test) [default] > default Error: Database connection "Mysql" is missing, or could not be created. #0 /home/shahar/development/myfinalproject/lib/Cake/Model/ConnectionManager.php(107): DboSource->__construct(Array) #1 /home/shahar/development/myfinalproject/lib/Cake/Console/Command/Task/ModelTask.php(900): ConnectionManager::getDataSource(''default'') #2 /home/shahar/development/myfinalproject/lib/Cake/Console/Command/Task/ModelTask.php(837): ModelTask->getAllTables(NULL) #3 /home/shahar/development/myfinalproject/lib/Cake/Console/Command/Task/ModelTask.php(926): ModelTask->listAll(NULL) #4 /home/shahar/development/myfinalproject/lib/Cake/Console/Command/Task/ModelTask.php(205): ModelTask->getName() #5 /home/shahar/development/myfinalproject/lib/Cake/Console/Command/Task/ModelTask.php(93): ModelTask->_interactive() #6 /home/shahar/development/myfinalproject/lib/Cake/Console/Command/BakeShell.php(108): ModelTask->execute() #7 /home/shahar/development/myfinalproject/lib/Cake/Console/Shell.php(392): BakeShell->main() #8 /home/shahar/development/myfinalproject/lib/Cake/Console/ShellDispatcher.php(200): Shell->runCommand(NULL, Array) #9 /home/shahar/development/myfinalproject/lib/Cake/Console/ShellDispatcher.php(68): ShellDispatcher->dispatch() #10 /home/shahar/development/myfinalproject/app/Console/cake.php(37): ShellDispatcher::run(Array) #11 {main}

Intenté ejecutar el comando de hornear desde mi directorio de aplicación (aunque veo que la ruta está bien) y obtuve el mismo error. He cambiado mi database.php localhost el localhost a 127.0.0.1 y sigue ocurriendo el mismo error.

¿Que me estoy perdiendo aqui?

Editar: Como las personas sugirieron que verificara la disponibilidad de extensiones PDO hice una pequeña prueba. Solía:

vagrant@precise64:/etc/php5/cli$ php -i | grep -i pdo /etc/php5/cli/conf.d/pdo.ini, /etc/php5/cli/conf.d/pdo_mysql.ini, PDO PDO support => enabled PDO drivers => mysql pdo_mysql PDO Driver for MySQL => enabled pdo_mysql.default_socket => /var/run/mysqld/mysqld.sock => /var/run/mysqld/mysqld.sock


¿Ha habilitado el módulo de pdo para cli? Creo que puedes tener diferentes php.ini para cli / web (fpm).


Intentar (re) instalar el soporte PHP MySQL

sudo apt-get install php5-mysql


Solo para ayudar a los usuarios de Ubuntu : tuve el mismo error en mi máquina ubuntu 13.10 con el nuevo xampp descargado directamente de apachefriends. Prueba esto:

Encuentre el socket que mysqld crea para que los programas se conecten:

user@host /opt$ find . -name mysql.sock /opt/lampp/var/mysql/mysql.sock

agrégalo a tu archivo de configuración de base de datos cakePHP (cakePHP) /app/Config/database.php

''unix_socket'' => ''/opt/lampp/var/mysql/mysql.sock''

Para mí, esto finalmente dio como resultado que mis comandos de tarta se pudieran ejecutar sin el " Error: la conexión de la base de datos" Mysql "falta, o no se pudo crear ".


en apache start si recibes una advertencia que dice algo como que apache no resuelve el nombre de host, usando 127.0.1.1 ... esto puede causar problemas más adelante con cakephp. solución: sudo nano /etc/apache2/apache2.config, agregue la línea: ServerName localhost


Para mí, resultó ser que la variable de servidor $ _SERVER [''HTTP_HOST''] no estaba disponible en el archivo de configuración database.php, por lo que mi configuración específica no se configuró correctamente cuando se ejecutaba en un Shell.

$ _SERVER [''HTTP_HOST''] no está disponible durante la ejecución de Shell.