Ich habe das alles getan, aber ich habe diese Ausnahme
Verbindung mit der Datenbank fehlgeschlagen. Ursache: Ausnahme ‘PDOException’ mit Meldung ‘SQLSTATE[HY000] [2002] Keine solche Datei oder Verzeichnis’ in /Applications/MAMP/htdocs/PushChatServer/api/test/database.php:17 Stack-Trace: #0 /Applications/MAMP/htdocs/PushChatServer/api/test/database.php(17): PDO->__construct(‘mysql:host=loca…’, ‘root’, ‘root’, Array) #1 {main}
Hoffe jemand kann sie beantworten, denn aus meiner Sicht müsste das Problem besser beschrieben werden…
– ZygD
17. April 2015 um 10:26 Uhr
Ich vermute, Sie haben falsche Anmeldeinformationen für Ihr MySQL definiert (Mysql-Hostname, Benutzer, Passwort).
– Marki555
17. April 2015 um 10:34 Uhr
Wo kann ich die MySQL-Anmeldeinformationen überprüfen? @Marki555
– Benutzer4276168
17. April 2015 um 10:35 Uhr
mögliches Duplikat von Fehler beim Herstellen einer Verbindung zu PDO in PHP
– David ‘mArm’ Ansermot
17. April 2015 um 10:35 Uhr
Mögliches Duplikat von PHP – MySQL-Verbindung funktioniert nicht: 2002 Keine solche Datei oder Verzeichnis
– kenorb
13. November 2015 um 12:21 Uhr
Adrian Enriquez
Sie müssen den Host von ändern localhost zu 127.0.0.1
Laravel 4: In deinem app/config/database.php Versuchen Sie, den Host von zu ändern localhost zu 127.0.0.1
Laravel 5: Im .env Datei, ändern DB_HOST von localhost zu 127.0.0.1
Quelle: PDOException SQLSTATE[HY000] [2002] Datei oder Verzeichnis existiert nicht
Aus irgendeinem seltsamen Grund hat das bei mir funktioniert – nextcloud auf MySQL.
– schlapp
22. Januar 2021 um 7:43 Uhr
hhmitGruppen
Schnelltest (in der Shell ausführen):
php -r "new PDO('mysql:hostname=localhost;dbname=test', 'username', 'password');"
SQLSTATE[HY000] [2002] Datei oder Verzeichnis existiert nicht bedeutet, dass PHP die Datei mysql.default_socket nicht finden kann. Beheben Sie es, indem Sie die Datei php.ini ändern. Auf Mac ist es mysql.default_socket = /tmp/mysql.sock (Siehe PHP – MySQL-Verbindung funktioniert nicht: 2002 No such file or directory)
SQLSTATE[HY000] [1044] Zugriff für Benutzer ‘Benutzername’@’localhost’ verweigert GLÜCKWUNSCH! Sie haben jetzt die richtige mysql.default_socket-Einstellung. Korrigieren Sie Ihren Datenbanknamen/Benutzernamen/Passwort.
Siehe auch Fehler beim Herstellen einer Verbindung zu PDO in PHP
Danke! Das hat bei mir funktioniert. Ich verwende PHP 7.1.9 auf Mac OS X 10.10, auf dem mysql 5.7-Server von macport ausgeführt wird. Für mysql von macport befindet sich mysql.sock unter /opt/local/var/run/mysql57/mysqld.sock. Ich bin auf diesen Fehler gestoßen, als ich versucht habe, „php artisan translate:install“ mit Laravel 5.5 auszuführen.
– RJ Cole
3. Oktober 2017 um 16:13 Uhr
Hallo Community, ich erhalte einen ähnlichen 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:58 Uhr
Ich hatte den gleichen Fehler mit PHP 5.6.30 (macOS Sierra) mit dem einfachen PDO-Code wie:
$pdo = new PDO('mysql:host=localhost;dbname=db_php', 'root', '');
Und ich habe die gleiche Fehlermeldung erhalten. Um das Problem zu beheben, habe ich in meinem Code “localhost” für IP (Loopback) “127.0.0.1” geändert:
$pdo = new PDO('mysql:host=127.0.0.1;dbname=db_php', 'root', '');
So testen Sie die Verbindung:
$ php -r "new PDO('mysql:host=127.0.0.1;dbname=db_php', 'root', '');"
Diese Arbeit ist für mich!
ROHSTOFF
Starten Sie Ihre Datenbank und Ihren lokalen Webserver neu:
sudo service mysqld restart
Es sollte funktionieren!
Ich bin mir nicht sicher, ob das für Sie funktioniert; aber ich benutze CakePHP, und ich erhalte diesen Fehler, wenn ich vergesse, die Portnummer am Ende des ‘Host’ anzugeben.
Hinweis: Nur Unix: Wenn der Hostname auf “localhost” gesetzt ist, wird die Verbindung zum Server über einen Domain-Socket hergestellt. Wenn PDO_MYSQL mit libmysqlclient kompiliert wird, befindet sich der Speicherort der Socket-Datei am kompilierten Speicherort von libmysqlclient. Wenn PDO_MYSQL gegen mysqlnd kompiliert wird, kann ein Standard-Socket durch die Einstellung pdo_mysql.default_socket gesetzt werden.
Aus diesem Grund zeigen PDO und mysql_connect ein unterschiedliches Verhalten für localhost.
Wenn Sie also eine TCP-Verbindung mit PDO verwenden möchten, verwenden Sie niemals localhost, sondern 127.0.0.1.
Kuhn
Ich hatte den gleichen Fehler für Mysql PDO, dieser Code funktioniert für mich!
Hoffe jemand kann sie beantworten, denn aus meiner Sicht müsste das Problem besser beschrieben werden…
– ZygD
17. April 2015 um 10:26 Uhr
Ich vermute, Sie haben falsche Anmeldeinformationen für Ihr MySQL definiert (Mysql-Hostname, Benutzer, Passwort).
– Marki555
17. April 2015 um 10:34 Uhr
Wo kann ich die MySQL-Anmeldeinformationen überprüfen? @Marki555
– Benutzer4276168
17. April 2015 um 10:35 Uhr
mögliches Duplikat von Fehler beim Herstellen einer Verbindung zu PDO in PHP
– David ‘mArm’ Ansermot
17. April 2015 um 10:35 Uhr
Mögliches Duplikat von PHP – MySQL-Verbindung funktioniert nicht: 2002 Keine solche Datei oder Verzeichnis
– kenorb
13. November 2015 um 12:21 Uhr