CakePHP: No existe el fichero o directorio (tratando de conectarse a través de UNIX: ///var/mysql/mysql.sock)
-
09-10-2019 - |
Pregunta
he tenido una aplicación cakephp funcionando bien en mi máquina local (Mac OSX) por un tiempo y luego suddently que darse cuenta de que no me puedo conectar a mysql.sock.
Estoy recibiendo este error:
Warning (2): mysql_connect() [http://php.net/function.mysql-connect]: [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) [CORE/cake/libs/model/datasources/dbo/dbo_mysql.php, line 540]
La línea 540 de dbo_mysql.php lee:
$this->connection = mysql_connect($config['host'] . ':' . $config['port'], $config['login'], $config['password'], true);
He comprobado, no hay //var/mysql/mysql.sock FLE. En realidad está en /tmp/mysql.sock
He intentado cambiar mi php.ini.default para que coincida con lo anterior pero ya está establecido que busque en / tmp / para conexiones locales. ¿Por qué, y dónde está llegando el error?
¿Alguien ha encontrado con un error similar?
Gracias,
Jonesy
Solución
Trate de pasar una ruta absoluta del archivo de mysql.sock en el APP / config / database.php
<?php
class DATABASE_CONFIG {
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'dbUser',
'password' => 'dbPassword',
'database' => 'dbName',
'prefix' => '',
'port' => '/path/to/mysql.sock'
);
}
Esto es mejor que correr a través de una IP para la conexión local, como la conexión de socket es mucho, mucho más rápido.
Otros consejos
Si usted está teniendo problemas con CakePHP 2.0, intente lo siguiente:
sudo mkdir /var/mysql
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock
En phpcake 2.0 uso 'unix_socket' en lugar de puerto
<?php
class DATABASE_CONFIG {
var $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'dbUser',
'password' => 'dbPassword',
'database' => 'dbName',
'prefix' => '',
'unix_socket' => '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock', //Path for mac XAMPP
);
}