CakePHP: Aucun fichier ou répertoire (essayez de vous connecter via unix: ///var/mysql/mysql.sock)

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

Question

J'ai eu une application CakePHP fonctionne bien sur ma machine locale (mac osx) pendant un certain temps puis suddently je me rends compte que je ne peux pas se connecter à mysql.sock.

Je reçois cette erreur:

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 ligne 540 de dbo_mysql.php lit comme suit:

$this->connection = mysql_connect($config['host'] . ':' . $config['port'], $config['login'], $config['password'], true);

Je l'ai vérifié, il n'y a pas de //var/mysql/mysql.sock FLE. Il est en fait dans /tmp/mysql.sock

J'ai essayé de changer mon php.ini.default pour correspondre à ce qui précède, mais il est déjà mis à regarder dans / tmp / pour les connexions locales. Pourquoi et où est l'erreur vient?

Quelqu'un at-il rencontré une erreur semblable?

Merci,

Jonesy

Était-ce utile?

La solution

Essayez de passer un chemin absolu du fichier mysql.sock dans le 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'
        );
    }

Cela vaut mieux que de courir via une adresse IP pour la connexion locale que la connexion socket est beaucoup, beaucoup plus rapide.

Autres conseils

Si vous rencontrez des problèmes avec CakePHP 2.0, essayez ceci:

sudo mkdir /var/mysql
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock

2,0 phpcake utilisation 'unix_socket' au lieu du port

<?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
        );
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top