2017-07-07 8 views
2

Ich habe eine Datenbank mit dem Namen cms eingerichtet, die ich verbinden kann, wenn ich ssh als Root-Benutzer und ich kann die Datenbank einfach in Ordnung. Ich kann mich auch mit MySQL Workbench verbinden. Wenn es jedoch zu einer Verbindung über Laravel 5.4 kommt, kann ich mich nicht mit MySQL verbinden, um eine Migration durchzuführen. Ich habe die gleichen Anmeldeinformationen in meiner .env Datei wie ich in MySQL Workbench, aber immer noch keine Verbindung. Irgendwelche Ideen?Verbinden mit MySQL von Laravel

Im Folgenden finden Sie, was ich habe in meiner .env Datei

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=cms 
DB_USERNAME=root 
DB_PASSWORD= 
+0

Was ist der Fehler, den Sie bekommen? – ceejayoz

+0

'[PDOException] SQLSTATE [HY000] [2002] Es konnte keine Verbindung hergestellt werden, weil der Zielcomputer die Aktion aktiv abgelehnt hat. – jesders88

+0

Aktivieren Sie diese Option, wenn Sie Homestead verwenden: https://stackoverflow.com/questions/32514241/php-laravel -no-connection-könnte-gemacht-weil-der-zielmaschine-aktiv-ref – dipoisola

Antwort

3

Via SSH Sie sind in der Lage, ohne ein Passwort zu MySQL als root zu verbinden, denn das ist das Standardverhalten ist. Es erlaubt dem lokalen Linux root Benutzer sich als root auf MySQL ohne Passwort anzumelden.

Wenn Sie nicht lokal (über SSH), sondern über TCP/IP oder einen Socket mit der PHP-Bibliothek mysql verbinden möchten, müssen Sie einen Benutzer dafür einrichten.

Hier ist, wie es zu tun:

1) Melden Sie sich über SSH in wie gewohnt haben, und mit Root-Zugriff MySQL

2) Erstellen Sie einen Benutzer:

CREATE USER 'laravel'@'%' IDENTIFIED BY 'ENTER-PASSWORD-HERE'; 

3) Erteilen Sie diesem Benutzer für Ihre Datenbank Berechtigungen:

4) Flush Berechtigungen, so dass alles Reloads:

FLUSH PRIVILEGES; 

5) Jetzt SSH Ausgang und Ihre .env Datei wie folgt bearbeiten:

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=cms 
DB_USERNAME=laravel 
DB_PASSWORD=ENTER-PASSWORD-HERE 

Natürlich bitte den Platzhalter "ENTER-Password-HERE", um etwas von Ihrer Präferenz ändern.

Sie sollten jetzt in der Lage sein, von Ihrer Anwendung aus eine Verbindung herzustellen.

+0

Perfekt. Ich kann über ssh verbinden, so scheint es, als würde es den Trick tun. – jesders88

+0

Froh, es hat funktioniert :) – Cyril

+0

Korrektur, Aus irgendeinem Grund habe ich immer noch das gleiche Problem. '[Illuminate \ Database \ QueryException] SQLSTATE [HY000] [2002] Es konnte keine Verbindung hergestellt werden, weil der Zielcomputer dies aktiv ablehnte. (SQL: select * from INFORMATION_SCHEMA.TABLES wo table_schema = cms und table_name = Migrationen) ' ' [PDOException] SQLSTATE [HY000] [2002] keine Verbindung hergestellt werden konnte, weil die Zielmaschine it.' aktiv verweigert – jesders88