por pais obtener geolocalizacion php mysql macos cakephp mamp

pais - La conexión de la base de datos de CakePHP "Mysql" falta, o no se pudo crear



obtener ip php (18)

Edite php.ini y agregue:

extension=php_pdo_mysql.dll

Luego reinicia tu servidor web

Hubo varias otras publicaciones sobre esto, pero ninguna de las respuestas pareció funcionar para mí.

Cuando navego a la página de CakePHP en mi máquina local, hay un error:

Cake no puede conectarse a la base de datos. La conexión de la base de datos "Mysql" falta, o no se pudo crear.

Cuando ejecuto este código útil en mi home.ctp, obtengo la siguiente respuesta:

¡Error !: SQLSTATE [42000] [1049] Base de datos desconocida ''test''

Sin embargo, mis Users/Ben/Sites/myapp/app/Config/database.php ven así (configuré MAMP para buscar la raíz del documento en Users / Ben / Sites):

<?php class DATABASE_CONFIG { public $default = array( ''datasource'' => ''Database/Mysql'', ''persistent'' => false, ''host'' => ''localhost'', ''login'' => ''Ben'', ''password'' => ''mypass'', ''database'' => ''CV'', ); }

mypass un usuario de MySQL llamado Ben con contraseña mypass y creé una base de datos llamada CV debajo de eso. Además, no puedo encontrar una base de datos de test ninguna parte. ¿Ayuda?


En Mac, usando MAMP como plataforma de desarrollo, para Cake la solución correcta es utilizar la solución de Domingo Casarrubio.

Agregue el parámetro unix_socket a las configuraciones de su base de datos.

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


En mi caso fue porque la base de datos no existía. Esperaba que ejecutar ./app/Console/cake schema create lo creara pero no fue así. Crearlo con create database <database name> en mysql hizo el truco (aunque ya tenía privilegios asignados).


Es posible que necesite crear la tabla en su archivo php ... Abra phpMyAdmin y verifique que exista CV de la base de datos.


Es tu modelo. Abra eso y debe haber la siguiente línea

public $useDbConfig = ''local'';

Esto sobrescribe la configuración global y la vuelve a establecer en local


Este error también puede producirse si el usuario de la base de datos de conexión no posee los privilegios adecuados. Creo que solo necesita un mínimo de INSERT, SELECT, UPDATE y DELETE.

Siempre verifique primero el nombre de usuario / contraseña y los privilegios del usuario, ya que CakePHP probablemente dará un error de conexión a la base de datos para cualquiera de los dos.


He estado luchando con esto todo el fin de semana y finalmente lo resolví. Resulta que php.ini apunta a un "directorio de extensiones" que no existe. Crea un archivo phpinfo () y mira el valor de este campo:

Noté que en la carpeta instalada de mamp php hay una carpeta sin depuración-no-zts-20131226, que es diferente del valor que se muestra en phpinfo (). Lo que hice fue clonar esta carpeta y cambié el nombre al valor de phpinfo (). Probablemente podrías modificar el archivo php.ini pero no quería.

No sé si resolvió su problema, pero estoy publicando esto porque mi problema era diferente y Google me llevó hasta aquí, así que espero ayudar a los futuros usuarios de Google a tener un problema similar.

Espero que esto ayude.


He tenido este problema desde que actualicé a OSX Yosemite e inserté la siguiente línea, el truco fue para mí:

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


Intente agregar el socket:

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


Lo que al final me sirvió fue que había creado una tabla en mi base de datos, pero no había datos en ella.

Para que CakePHP reconozca la conexión de MySql, tiene que haber una tabla con datos.


Noté que hiciste esto hace un año, y lo más probable es que ya lo haya resuelto. Sin embargo, para aquellos que enfrentan los mismos problemas cuando intentan instalar CakePHP en XAMPP, todo lo que tienen que hacer es cambiar el ''inicio de sesión'' a ''raíz'', es decir, el inicio de sesión predeterminado de XAMPP y dejar la ''contraseña'' como '''', es decir blanco. El código completo en su archivo database.php debería verse así:

public $default = array( ''datasource'' => ''Database/Mysql'', ''persistent'' => false, ''host'' => ''localhost'', ''login'' => ''root'', ''password'' => '''', ''database'' => ''ckblog'',//replace with your own database name ''prefix'' => '''', //''encoding'' => ''utf8'', );

Eso es.


Porque, cake bake usa un socket unix para conectarse a la base de datos
por lo que necesita agregar unix_socket para la cadena de conexión.
Debes confirmar la ubicación que almacena mysql.sock en WAS
Ejemplo: en mi caso estoy usando xampp en MACOS 10.11
(editar archivo Config / database.php)

public $default = array( ‘datasource’ => ‘Database/Mysql’, ‘persistent’ => false, ‘host’ => ‘localhost’, ‘login’ => ‘root’, ‘password’ => ‘root’, ‘database’ => ‘cakephp’, ‘encoding’ => ‘utf8’, ‘unix_socket’ => ‘/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock’ );

Finalmente, ¡es trabajo para mí!


Puede ser que falta soporte de PDO mysql.

como root (o usando sudo):

apt-get install php5-mysql


Si está en Godaddy (o en cualquier otro alojamiento compartido para ese asunto), es posible que esté limitando las conexiones salientes a los puertos 80 y 443 únicamente.


Solo para ayudar a los usuarios de Ubuntu a salir: tuve el mismo error en mi máquina ubuntu 13.10 con el nuevo xampp downlaoded directamente de apachefriends. Intenté la mayoría de las cosas en cada publicación que pude encontrar sobre este error, pero no sobre las mac-específicas. Al final, la solución resultó ser la misma que la respuesta elegida aquí:

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 ".


Traté de empalmar el código del Ejemplo 2 de http://php.net/manual/en/pdo.connections.php en /app/View/Pages/home.ctp. Tuve que arreglar los argumentos del constructor de PDO y cambiar el nombre de la tabla en la consulta. El código del ejemplo 2 arrojó el error "¡Error !: no se pudo encontrar el controlador". Basado en la respuesta del Rey Jk, estaba intentando modificar el php.ini cuando comencé a preguntarme dónde podría vivir php_pdo_mysql.so. http://php.net/pdo_mysql mostró cómo se compiló como parte de PHP a través de la opción --with-pdo-mysql para configurar. La recompilación solucionó mi problema. Tenga en cuenta que estoy trabajando en un sistema Ubuntu 12.10 con PHP 5.5.9 y Apache Webserver 2.4.6


Tuve el mismo problema y me enteré de que fue causado por CakePhp no aceptando que utilicé un usuario con una contraseña, incluso si ese usuario se creó en PHPMyAdmin. Tuve que usar el usuario ''root'' sin contraseña.

Lo descubrí después de hacer el siguiente cambio en el archivo /lib/Cake/Error/exceptions.php .

La línea original:

protected $_messageTemplate = ''Database connection "%s" is missing, or could not be created.'';

se cambia en esto en cambio:

protected $_messageTemplate = "Database connection /"%s/" is missing, or could not be created:/n %s";

Esto le dará la razón del problema para que pueda cambiar la causa correctamente.


Una alternativa a unix_socket (especialmente para personas OS X) es reemplazar localhost con 127.0.0.1

Sería como sigue:

public $default = array( ''datasource'' => ''Database/Mysql'', ''persistent'' => false, ''host'' => ''127.0.0.1'', ''login'' => ''user'', ''password'' => ''password'', ''database'' => ''database-name'', ''prefix'' => '''', ''encoding'' => ''utf8'', );