CakePHP: Нет такого файла или каталога (попытка подключения через unix: ///var/mysql/mysql.sock)

На некоторое время у меня было приложение cakephp, которое отлично работает на моей локальной машине (mac osx), а затем я понимаю, что я не могу подключиться к mysql.sock.

Я получаю эту ошибку:

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] 

Строка 540 dbo_mysql.php гласит:

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

Я проверил, нет флагов //var/mysql/mysql.sock. Это на самом деле в /tmp/mysql.sock

Я попытался изменить свой php.ini.default, чтобы он соответствовал выше, но он уже настроен для поиска в / tmp / для локальных подключений. Почему и откуда возникает ошибка?

Кто-нибудь сталкивался с подобной ошибкой?

Благодаря,

Джоунси

Попробуйте передать абсолютный путь в файл mysql.sock в 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' ); } 

Это лучше, чем запуск через IP для локального соединения, поскольку соединение сокета намного, намного быстрее.

Если у вас возникла проблема с CakePHP 2.0, попробуйте следующее:

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

В phpcake 2.0 используйте «unix_socket» вместо порта

 <?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 ); }