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.по умолчанию, чтобы соответствовать приведенному выше, но он уже настроен на поиск локальных подключений в /tmp/. Почему и где происходит ли ошибка от?

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

Спасибо,

Джонси

Author: iamjonesy, 2010-10-19

3 answers

Попробуйте передать абсолютный путь к файлу 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 для локального подключения, так как подключение к сокету намного, намного быстрее.

 12
Author: Abba Bryant, 2010-10-19 18:15:21

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

sudo mkdir /var/mysql
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock
 12
Author: Milos Matic, 2012-01-19 13:12:18

В 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
        );
    }
 6
Author: Kent Widman, 2011-11-02 17:00:13