Gehen Sie einfach alle auf der Website Laravel aufgeführten Schritte durch , um MacOS HighSierra zu installieren und in Betrieb zu nehmen. Ich habe derzeit Composer, Homebrew, Valet, PHP 7.2.8, MySQL Version 8.0.11 und Laravel 5.6.28 installiert. Ich kann mit dem Befehl Laravel new blog
ein neues Projekt erstellen und habe keine Probleme. Auch wenn ich zu meinem Browser gehe, kann ich das aktuelle Projekt sehen, das ich gerade erstellt habe oder an dem ich arbeite. Ich kann den Befehl valet list
ausführen und weiß, dass er ausgeführt wird/funktioniert. Ich kann auch eine Migration erstellen und sie auch in meinem Projekt anzeigen lassen, indem ich den php artisan make:migration test_test_test
ausführe.
Meine PATH
enthält auch ~/.composer/vendor/bin
.
meine .env datei sieht so aus
APP_NAME=Laravel
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_Host=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync
REDIS_Host=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_Host=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
Ich führe den Befehl php artisan migrate -vvv
aus und er wird ausgeführt und hängt sich ohne Ausgabe auf. Ich muss ctl-c, um da rauszukommen. habe auch den -v /-vv
ausprobiert, habe das selbe gemacht.
Ich habe eine Datenbank mit dem Namen blog
erstellt und sogar manuell eine Tabelle test
hinzugefügt, um sicherzustellen, dass die Datenbank funktioniert/ausgeführt wird.
Update
Ging voran und deinstalliere MySQL und installiere es neu. Ich konnte den Befehl php artisan migrate -v ausführen und erhalte diesen Fehler.
jetzt erhalte ich diesen Fehler.
MacBook-Pro:anything computername$ php artisan migrate -v
PDOException : SQLSTATE[HY000] [2006] MySQL server has gone away
at /Users/computername/Sites/anything/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:68
64| if (class_exists(PDOConnection::class) && ! $this->isPersistentConnection($options)) {
65| return new PDOConnection($dsn, $username, $password, $options);
66| }
67|
> 68| return new PDO($dsn, $username, $password, $options);
69| }
70|
71| /**
72| * Determine if the connection is persistent.
Ausnahmeverfolgung:
Erstellt einen Router und eine Ansicht, die eine Verbindung zu einer von mir erstellten Tabelle herstellt, um festzustellen, ob ich auf die Datenbankvariablen zugreifen und diese ausdrucken kann. Bei der Rückkehr habe ich diesen Fehler bekommen.
Exception message: PDO::__construct(): Unexpected server respose while doing caching_sha2 auth: 109
Ich selbst hatte dieses Problem und bekam den Fehler Exception message: PDO::__construct(): Unexpected server respose while doing caching_sha2 auth: 109
So habe ich es behoben:
Ich habe mich bei mysql als root-Benutzer wie mysql –uroot –p
angemeldet und mein Passwort eingegeben
Sie können eine Liste der Benutzer erhalten, die sich auf dem Server befinden, indem Sie Folgendes eingeben: SELECT User, Host FROM mysql.user;
Stellen Sie sicher, dass Sie den Benutzer sehen, den Sie von Ihrer .env-Datei aus mit der Datenbank verbinden möchten. Sie müssen den aktuellen Benutzer so ändern, dass er das in der letzten Version von mysql erforderliche Kennwort caching_sha2_password verwendet.
Hier ist dieser Befehl.
ALTER USER `username`@`localhost` IDENTIFIED WITH caching_sha2_password BY 'password';
Wenn Sie noch als Root-Benutzer angemeldet sind, müssen Sie diesen Befehl ausführen, damit Ihr Benutzer die erforderlichen Aufgaben ausführen kann, die für einen php artisan migrate
zulässig sind. ZB: CREATE, DROP, ALTER, DELETE
und so.
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
Wenn dies nicht funktioniert, können Sie auch auswählen, welche Befehle Sie zulassen möchten, anstatt ihnen vollständigen Zugriff zu gewähren.
GRANT SELECT, INSERT ON *.* TO 'someuser'@'somehost';
Hoffe das hilft ~
Server ist weg, ein MySQL-Fehler, diesen Link überprüfen
Vergewissern Sie sich, dass Ihr MySQL-Dienst tatsächlich ausgeführt wird, und dass Sie anschließend die richtigen Anmeldeinformationen für Ihre .env
-Datei haben
Beim "Anfangsfehler" bei Migrationen müssen wir sehen, was im Migrationscode enthalten ist.
Bearbeiten: Da die Migrationen die Standardeinstellung von Laravel sind, liegt das Problem wahrscheinlich in der Verbindung zwischen Laravel und der Datenbank.
Um dies zu bestätigen:
DB::statement('select * from tablejustcreated');
zurückgibtStellen Sie die Anforderung auf diese Route und wenn sie einfriert, boom, ist dies die Verbindung und höchstwahrscheinlich .env
-Anmeldeinformationen (Benutzername und Kennwort, Host, Port).
Vielen Dank an @poohhbear und allen anderen, die mir geholfen haben, das Problem zu beheben.
Was für mich tatsächlich funktioniert hat:
ALTER USER 'myusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypassword';
... vermutlich weil das neue MySQL standardmäßig caching_sha2_password
war und PHP nicht wusste, wie es damit umgehen sollte.
Es ist ein bekannter Fehler in PHP 7.2.8. Downgrade auf PHP 7.2.7, bis es behoben ist.
Ich habe das gleiche Problem bei einem Upgrade von PHP 7.2.7 auf PHP 7.2.8 festgestellt.