Ich habe die migrations
-Tabelle aus einer Laravel -Datenbank 5.4 mit dem Namen laravel
gelöscht. Wenn ich php artisan migrate:install
starte, erhalte ich folgende Fehlermeldung:
[Illuminate\Database\QueryException]
SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from
information_schema.tables where table_schema = laravel
and table_name = migrations)
Ich habe die Datenbank gelöscht und neu erstellt. Ich lief auch composer update
. Kein Glück. Ich kann den Befehl in phpMyAdmin ausführen und die Tabelle manuell erstellen.
Wenn Sie localhost
als Datenbankhost verwenden, ändern Sie ihn in 127.0.0.1
. Führen Sie dann php artisan config:clear
aus und versuchen Sie es erneut mit php artisan migrate:install
.
Folgendes empfehle ich für .env
Datei:
DB_CONNECTION=mysql
DB_Host=localhost
DB_PORT=3306
Dann in Database.php
Ordner hinzufügen:
'unix_socket' => env('DB_SOCKET', '/Applications/MAMP/tmp/mysql/mysql.sock'),
Schließlich versuchen Sie:
php artisan config:clear
php artisan migrate:install
Versuchen Sie vielleicht die folgenden Befehle
Rollback:
php artisan migrate:rollback
Oder ein Reset mit:
php artisan migrate:reset
oder eine Aktualisierung durchführen:
php artisan migrate:refresh
Ich arbeite mit Mamp, daher ist mein Unix-Sockel gegeben:
localhost:/Applications/MAMP/tmp/mysql/mysql.sock
Durch das Verbinden von Laravel mit der Datenbank bekomme ich auch den Fehler oben . Meine Lösung bestand darin, den Socket ohne "localhost:". __ zu nehmen (es ist eine lokale Installation).
Also probieren Sie den Socket: /Applications/MAMP/tmp/mysql/mysql.sock
Ich verwende MAMP unter MacOS und nachdem ich localhost auf 127.0.0.1 und den Port auf 8888 bearbeitet habe, wurde dieses Problem durch Hinzufügen des Folgenden behoben
'unix_socket' => env ('DB_SOCKET', '/Applications/MAMP/tmp/mysql/mysql.sock'),
in die config/database.php Datei.
In einigen Fällen kann dies passieren, weil der MySQL-Server nicht ausgeführt wird. Es ist mir passiert mit Laravel 5.7 und Neustart von MySQL-Server gelöst. Für Ubuntu überprüfen Sie den Status von MySQL-Server service mysql status
. Sie können MySQL-Server mit Befehl service mysql restart
Ich habe den Ordner gelöscht und die Codebasis neu erstellt, wobei sichergestellt wurde, dass meine Umgebung auf den richtigen Datenbankserver verweist. Diesmal hat es geklappt. Ich weiß nicht genau, was fehlte, um den ursprünglichen Fehler zu verursachen.