CakePHP: No existe el fichero o directorio (tratando de conectarse a través de UNIX: ///var/mysql/mysql.sock)

StackOverflow https://stackoverflow.com/questions/3968013

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

¿Fue útil?

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
        );
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top