2013-10-11 3 views
7

Я пытался сгенерировать код модели из инструмента командной строки cake. Но это проблема.Отсутствует соединение с базой данных «Mysql» и отсутствует mysql.sock

Warning Error: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in [/Users/test/Google_WWW/project_name/lib/Cake/Model/Datasource/Database/Mysql.php, line 177] 

Error: Database connection "Mysql" is missing, or could not be created. (although it's showing that mysql database is connected at localhost in cakephp directory) 

Я использую MAMP.

Я много искал и нашел некоторые решения. Например, это CakePHP: No such file or directory (trying to connect via unix:///var/mysql/mysql.sock)

или я также могу сделать символическую ссылку mysql.sock.

/Applications/MAMP/tmp/mysql/mysql.sock (not present in directory) 

Но прежде чем что-либо сделать, проблема в файле mysql.sock отсутствует в этом каталоге. Я попытался переустановить MAMP, но не mysql.sock.

Пожалуйста, помогите мне решить эту проблему? Могу ли я создать свой собственный файл mysql.sock ..?

Edit: Мой дб конфигурации

public $default = array(
    'datasource' => 'Database/Mysql', 
    'persistent' => false, 
    'host' => 'localhost', 
    'login' => 'root', 
    'password' => 'root', 
    'database' => 'db_name', 
    'prefix' => '' 
); 
+0

можете ли вы разместить параметры конфигурации базы данных? – arilia

+0

отредактировал мой вопрос, я должен сказать, что база данных подключена без каких-либо проблем. Но для создания модели через cakephp cli он использует mysql.sock, которого нет в папке mamp, о которой я упоминал. – ManinGreen

+0

Что делать, если вы попробуете 127.0.0.1 вместо localhost? – arilia

ответ

8

MAMP странно, когда речь идет о MySQL. Скорее всего, вам нужно создать символическую ссылку, чтобы она знала, где ее найти. Что-то вроде:

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

+0

Спасибо за ответ. Я создал символическую ссылку, но моя проблема не была решена. – ManinGreen

+1

Чтобы использовать его с php-cli, создав символическую ссылку, отредактируйте свой php.ini: 'pdo_mysql.default_socket =/tmp/mysql.sock',' mysql.default_socket =/tmp/mysql.sock', 'mysqli. default_socket =/tmp/mysql.sock' – Seb33300

+0

Файл не создан вообще в моем случае. не могли бы вы рассказать мне, как заставить mamp генерировать файл? но phpmyadmin отлично работает –

3

После поиска и пытается много вещей, которые я, наконец, удалось решить мою проблему. Ответ Chuck Burgess приведенный выше может решить эту проблему, но мой сценарий был немного по-другому, что я не был в состоянии видеть файл mysql.sock по адресу:

/Applications/MAMP/tmp/mysql/mysql.sock 

Я думал, что мой mysql.sock не хватало, но на самом деле это было там и спрятаны (ЧТО СТРАЖЕСЬ! Я ХОЧУ ЭТО ПАПИТЬ, используя CLI И ПИЛОМ, ЧТО). Я использую MAC и файлы, начинающиеся с '.' обычно HIDDEN, но не знаю, почему mysql.sock был скрыт, так что я сделал это в моем файле конфигурации базы данных. Я добавил 1 параметр (unix_socket), и моя проблема была решена.

'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock' 
+0

, здесь же оно скрыто и может видеть его через cli. но когда я добавляю unix_socket, все равно я не подключаюсь. –

0

Я борется с этим весь уик-энд и, наконец, решил его. Оказывается, что php.ini указывает на несуществующий «расширительный каталог». Создайте файл phpinfo() и посмотрите на значение этого поля: extensions_dir

Я заметил, что в установленной папке MAMP PHP есть не-отладочные-нон-ЗТС-20131226 папка, которая отличается от значения показано в phpinfo(). Я сделал клонирование этой папки и изменил имя на значение phpinfo(). Возможно, вы можете изменить файл php.ini, но я этого не хотел.

Я вижу, что вы решили свою проблему, но моя была другой, поэтому я отправляю этот ответ, чтобы помочь будущим искателям искать аналогичную проблему.

Надеюсь, это поможет.

1

В моем случае это было потому, что я вызывал неправильную версию PHP. То есть Я использовал /usr/bin/php, который, когда php MAMP Pro является /Applications/MAMP/bin/php/php5.3.29/bin/php

+0

Человек, как вы это делаете – Monclee

1

В моем случае проблема возникает сразу после отключения питания. Поэтому я исправил его, удалив файл /Applications/MAMP/tmp/mysql/mysql.pid и перезапустив MAMP.

+0

Это сломало мою маму :-( – rcpfuchs

+0

тоже сломал мой ... Даже после возвращения файла ... –

0

С MAMP создать символическую ссылку в папке/вар/MySQL /:

Судо пер -n /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock

Смежные вопросы