PDO-Ausnahme: SQLSTATE[HY000] [2002] Datei oder Verzeichnis existiert nicht

Lesezeit: 4 Minuten

Ich habe das PushChatServer-Verzeichnis in den htdocs-Ordner gelegt und eine Datenbank erstellt.http://localhost/PushChatServer/api/test/database.php

Dann bekam ich folgende Ausnahme.

Ich möchte dasselbe tun, um diesen Link zu erklären http://www.raywenderlich.com/32963/apple-push-notification-services-in-ios-6-tutorial-part-2

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

PDO Ausnahme SQLSTATEHY000 2002 Datei oder Verzeichnis existiert nicht
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

PDO Ausnahme SQLSTATEHY000 2002 Datei oder Verzeichnis existiert nicht
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!

1647141250 659 PDO Ausnahme SQLSTATEHY000 2002 Datei oder Verzeichnis existiert nicht
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.

Hoffe das hilft!

Vor

'test' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'username' => 'root',
        'password' => 'root',
        'database' => 'mylogin',
        'encoding' => 'utf8',
        'timezone' => 'UTC',
        'cacheMetadata' => true,
        'quoteIdentifiers' => false,
        'log' => false,
        //'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
        'url' => env('DATABASE_TEST_URL', null),
    ]

Nach dem

'test' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => 'localhost:8080',
        'username' => 'root',
        'password' => 'root',
        'database' => 'mylogin',
        'encoding' => 'utf8',
        'timezone' => 'UTC',
        'cacheMetadata' => true,
        'quoteIdentifiers' => false,
        'log' => false,
        //'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
        'url' => env('DATABASE_TEST_URL', null),
    ]

1647141250 417 PDO Ausnahme SQLSTATEHY000 2002 Datei oder Verzeichnis existiert nicht
Thomas Deux

PDO behandelt localhost ganz besonders:

Von http://php.net/manual/en/ref.pdo-mysql.connection.php:

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.

1647141251 471 PDO Ausnahme SQLSTATEHY000 2002 Datei oder Verzeichnis existiert nicht
Kuhn

Ich hatte den gleichen Fehler für Mysql PDO, dieser Code funktioniert für mich!

<?php
$dsn = 'mysql:host=127.0.0.1;dbname=testdb';
$username="username";
$password = 'password';
$options = array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
); 

$dbh = new PDO($dsn, $username, $password, $options);
?>

habe diesen Code von: http://php.net/manual/en/ref.pdo-mysql.connection.php

995800cookie-checkPDO-Ausnahme: 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