2013-10-11 19 views
7

Ich habe versucht, Modellcode aus Kuchen Befehlszeile-Tool zu generieren. Aber habe dieses Problem.Datenbankverbindung "Mysql" fehlt und mysql.sock fehlt

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) 

Ich benutze MAMP.

Ich suchte viel und fand einige Lösungen. Zum Beispiel dies CakePHP: No such file or directory (trying to connect via unix:///var/mysql/mysql.sock)

oder ich kann auch eine symbolische Verbindung von mysql.sock machen.

Aber bevor ich etwas mache, ist das Problem mysql.sock-Datei ist nicht in diesem Verzeichnis vorhanden. Ich habe versucht, die MAMP neu zu installieren, aber immer noch keine mysql.sock.

Bitte helfen Sie mir, dieses Problem zu lösen? Kann ich meine eigene mysql.sock Datei erstellen?

Edit: Meine db Config

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

Können Sie bitte Ihre Datenbankkonfigurationsparameter posten? – arilia

+0

meine Frage bearbeitet, eine Sache muss ich sagen, dass die Datenbank ohne Probleme verbunden ist. Aber um ein Modell über cakephp cli zu erstellen, verwendet es mysql.sock, das nicht in dem von mir erwähnten mamp-Ordner vorhanden ist. – ManinGreen

+0

Was ist, wenn Sie 127.0.0.1 anstelle von localhost versuchen? – arilia

Antwort

8

MAMP ist seltsam, wenn es um MySQL kommt. Wahrscheinlich müssen Sie einen symbolischen Link einrichten, damit er weiß, wo er zu finden ist. Etwas wie:

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

+0

Danke für die Antwort. Ich habe einen symbolischen Link erstellt, aber mein Problem wurde nicht gelöst. – ManinGreen

+1

Um es mit php-cli zu verwenden, editieren Sie nach dem Erstellen des symbolischen Links Ihre php.ini: 'pdo_mysql.default_socket =/tmp/mysql.sock',' mysql.default_socket =/tmp/mysql.sock', 'mysqli. default_socket =/tmp/mysql.sock' – Seb33300

+0

Die Datei wird in meinem Fall überhaupt nicht erstellt. Kannst du mir bitte sagen, wie man Mamp bekommt, um die Datei zu generieren? aber phpmyadmin funktioniert einwandfrei –

3

Nach der Suche und eine Menge Dinge, ich versucht, es endlich geschafft, mein Problem zu lösen. Die Antwort Chuck Burgess oben angegebenen könnte das Problem zu lösen, aber mein Szenario war etwas anders, dass ich nicht in der Lage war mysql.sock Datei zu sehen:

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

Ich dachte, meine mysql.sock fehlte aber es tatsächlich war dort und versteckt (DAS ist ein Strange! Ich ging zu diesem Ordner mit CLI und sah, dass). Ich verwende MAC und Dateien, die mit '.' sind normalerweise VERSTECKT aber wissen nicht, warum mysql.sock versteckt wurde, also was ich tat, ist in meiner Datenbankkonfigurationsdatei Ich fügte 1 Parameter (unix_socket) hinzu und mein Problem wurde gelöst.

+0

gleich hier ist es versteckt und kann es über CLI sehen. aber wenn ich das unix_socket noch hinzufüge, werde ich nicht verbunden. –

0

Ich habe mit dem das ganze Wochenende gekämpft und es schließlich gelöst. Es stellt sich heraus, dass die php.ini auf ein nicht existierendes "extensions dir" zeigt. Erstellen Sie eine phpinfo() Datei und Blick auf den Wert dieses Feldes: extensions_dir

ich, dass es in der MAMP PHP installiert Ordner bemerkt ist ein No-Debug-nicht-zts-20131226-Ordner, der von dem Wert abweicht in der phpinfo() gezeigt. Ich habe diesen Ordner geklont und den Namen in den Wert von phpinfo() geändert. Wahrscheinlich könnten Sie die php.ini Datei ändern, aber ich wollte nicht.

Ich sehe, dass Sie Ihr Problem gelöst haben, aber meine war anders, also posten ich diese Antwort, um zukünftigen Googlern zu helfen, die nach einem ähnlichen Problem suchen.

Hoffe, das hilft.

1

In meinem Fall war es, weil ich die falsche Version von PHP anrief. I.e. Ich benutzte /usr/bin/php, die, wenn MAMP Pro's PHP ist /Applications/MAMP/bin/php/php5.3.29/bin/php

+0

Mann, wie machst du das – Monclee

1

In meinem Fall erscheint das Problem direkt nach einem Stromausfall. Also habe ich es behoben, indem ich die Datei /Applications/MAMP/tmp/mysql/mysql.pid gelöscht und MAMP neu gestartet habe.

+0

das brach mein Mamp :-( – rcpfuchs

+0

brach mir auch. Auch nach dem Zurückgeben der Datei ... –

0

Mit MAMP einen symbolischen Link im Ordner erstellen/var/mysql /:

sudo ln -n /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock