PDOException SQLSTATE[HY000] [2002] Datei oder Verzeichnis existiert nicht

Lesezeit: 5 Minuten

PDOException SQLSTATEHY000 2002 Datei oder Verzeichnis existiert nicht
Daniel Hollands

Ich glaube, dass ich meine (sehr einfache) Site erfolgreich auf Fortrabbit bereitgestellt habe, aber sobald ich mich mit SSH verbinde, um einige Befehle auszuführen (wie z php artisan migrate oder php artisan db:seed) bekomme ich eine Fehlermeldung:

[PDOException]
SQLSTATE[HY000] [2002] No such file or directory

Irgendwann muss die Migration geklappt haben, denn meine Tabellen sind da – aber das erklärt nicht, warum es bei mir jetzt nicht funktioniert.

  • Mögliches Duplikat von PHP – MySQL-Verbindung funktioniert nicht: 2002 Keine solche Datei oder Verzeichnis

    – kenorb

    13. November 2015 um 12:20 Uhr

  • manchmal nur, weil Sie mysql noch nicht installiert haben

    – Hassan Gilak

    22. April 2016 um 13:28 Uhr

  • Für mich war es Einstellung 'host' => 'mysql', in config/database.php und kommentieren unix_socket Parameter.

    – temo

    29. Dezember 2021 um 13:44 Uhr

Die Fehlermeldung zeigt an, dass eine MySQL-Verbindung über Socket versucht wird (was nicht unterstützt wird).

Im Kontext von Laravel (Artisan) möchten Sie wahrscheinlich eine andere / die richtige Umgebung verwenden. Z.B: php artisan migrate --env=production (oder was auch immer Umgebung). Sehen Hier.

  • Dies war die Lösung für mein Problem, einer der Entwickler in unserer Firma verwendet Homestead nicht und verbindet sich über Socket mit MySQL. Ich habe die Socket-Konfiguration in meiner app/database.php-Datei entfernt. Problem gelöst

    – Borislemke

    29. Januar 2016 um 6:06 Uhr

  • Ich musste nur die Erweiterung mysqli.so in php.ini aktivieren

    – Mehulkumar

    23. April 2017 um 9:42 Uhr

  • Ich musste “‘unix_socket’ => ‘/Applications/MAMP/tmp/mysql/mysql.sock'” zu config/database.php hinzufügen

    – Ángel Carlos del Pozo Muela

    31. Januar 2018 um 12:23 Uhr

  • Hallo Community, ich erhalte diesen Fehler, obwohl ich Laravel nicht verwende. Können Sie sich das Problem hier ansehen, es ist stackoverflow.com/questions/60796332/…

    – Kiran Patel

    22. März 2020 um 5:57 Uhr

  • Dies passiert auch, wenn Sie Socket als MySQL-Endpunkt verwenden und der MySQL-Dienst einfach nicht ausgeführt wird.

    – Sych

    12. Juli 2020 um 15:16 Uhr

  • Die “direkt zur Ausgabe” Lösung. Danke, das hat mich dazu gebracht, Laravel mit MAMP Pro auszuführen

    – animaacija

    25. Juni 2015 um 7:38 Uhr

  • Danke dafür. Das hat bei mir funktioniert. Mit OSX 10.10.5 MAMP Pro

    – marknt15

    5. November 2015 um 4:45 Uhr

  • Dies funktionierte bei mir auch mit MAMP pro und OS X 10.11.x. Am Ende war: /Applications/MAMP/tmp/mysql/mysql.sock

    – Bort Nummernschild

    20. Januar 2016 um 4:47 Uhr

  • +1. Die Verwendung von „127.0.0.1“ in der Konfiguration anstelle von „localhost“, wie Yamartino in seiner Antwort sagte, funktioniert gut, aber mit einem Socket ist es schneller, und diese Antwort löst das Problem. Es ist eine Schande, dass mysql “localhost” so eigenartig behandelt, wenn unix_socket definiert ist …

    – Schautieh

    20. Februar 2016 um 6:10 Uhr

  • @GregFerrell Ja, das stimmt, aber gut … Ich hoffe, es könnte nützlich sein

    – alexventuraio

    20. Februar 2016 um 6:37 Uhr

Ich bin auf die gestoßen [PDOException] SQLSTATE[HY000] [2002] No such file or directory Fehler aus einem anderen Grund. Ich hatte gerade einen brandneuen LAMP-Stack auf Ubuntu 12.04 mit Apache 2.4.7, PHP v5.5.10 und MySQL 5.6.16 erstellt. Ich habe meine Seiten wieder umgezogen und sie hochgefahren. Aber ich konnte meine auf Laravel 4.2.x basierende Seite wegen dem nicht laden [PDOException] Oben. Also, ich habe es überprüft php -i | grep pdo und bemerkte diese Zeile:

pdo_mysql.default_socket => /tmp/mysql.sock => /tmp/mysql.sock

Aber in meiner /etc/my.cnf ist die Sockendatei tatsächlich drin /var/run/mysqld/mysqld.sock.

Also habe ich meine php.ini geöffnet und den Wert für eingestellt pdo_mysql.default_socket:

pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock

Dann habe ich Apache neu gestartet und überprüft php -i | grep pdo:

pdo_mysql.default_socket => /var/run/mysqld/mysqld.sock => /var/run/mysqld/mysqld.sock

Das hat es für mich behoben.

  • Dies war der Fix, der für mich funktionierte, das Problem war, dass ich zwei Versionen von MySQL installiert und eine entfernt habe, die Änderung von 127.0.0.1 funktionierte nicht oder das Hinzufügen der Socke in der Konfiguration, danke! @dcarrith

    – Luis

    27. Oktober 2015 um 2:32 Uhr

  • Dies hat mir geholfen, mein Problem zu finden – das war, dass ich OSX-gebündeltes PHP verwendet habe, nicht die MAMP-PHP-Binärdatei. Stellen Sie also sicher, dass Sie die richtige PHP-Version verwenden, die auf die richtige php.ini usw. verweist. Eindeutiges “doh!” Moment.

    – libellenartig

    5. April 2016 um 18:43 Uhr

PDOException SQLSTATEHY000 2002 Datei oder Verzeichnis existiert nicht
stuyam

Die Antwort von @stuyam löste das Problem “Keine solche Datei oder kein solches Verzeichnis” für mich

Kurze Antwort: Ändere “host” in der Datei /app/config/database.php von “localhost” auf “127.0.0.1”

Aber dann hatte ich einen Fehler “Verbindung abgelehnt”. Wenn jemand das gleiche Problem hatte, bestand meine Lösung dafür darin, die Datei app/config/local/database.php so zu aktualisieren, dass der Port 8889 lautet:

'mysql' => array(
        'driver'    => 'mysql',
        'host'      => '127.0.0.1',
        'port'      => '8889',
        'database'  => 'databaseName',
        'username'  => 'root',
        'password'  => 'root',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),

  • Dies war der Fix, der für mich funktionierte, das Problem war, dass ich zwei Versionen von MySQL installiert und eine entfernt habe, die Änderung von 127.0.0.1 funktionierte nicht oder das Hinzufügen der Socke in der Konfiguration, danke! @dcarrith

    – Luis

    27. Oktober 2015 um 2:32 Uhr

  • Dies hat mir geholfen, mein Problem zu finden – das war, dass ich OSX-gebündeltes PHP verwendet habe, nicht die MAMP-PHP-Binärdatei. Stellen Sie also sicher, dass Sie die richtige PHP-Version verwenden, die auf die richtige php.ini usw. verweist. Eindeutiges “doh!” Moment.

    – libellenartig

    5. April 2016 um 18:43 Uhr

1646974448 306 PDOException SQLSTATEHY000 2002 Datei oder Verzeichnis existiert nicht
Koeno

Wenn Sie Laravel Homestead verwenden, stellen Sie sicher, dass Sie die Befehle auf dem Server aufrufen.

homestead ssh

Dann einfach in das richtige Verzeichnis cd und dort deinen Befehl abfeuern.

  • Das hat funktioniert, ich habe zuerst den Befehl von meinem Computer anstelle von ssh in die VM ausgeführt und dort den Befehl ausgeführt.

    – cmac

    21. Dezember 2016 um 16:00 Uhr

  • Diesen Schritt vergesse ich immer. Heh. 1. source ~/.zshrc 2. homestead up --provision 3. homestead ssh

    – Marcel Gruber

    9. Februar 2017 um 2:58 Uhr

  • vagrant ssh in meinem Fall

    – Marcos Curvello

    18. Oktober 2018 um 15:54 Uhr

989910cookie-checkPDOException SQLSTATE[HY000] [2002] Datei oder Verzeichnis existiert nicht

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy