Der Laravel-Migrationsbefehl funktioniert nicht für die entfernte Datenbank

8

Ich arbeite an einem Projekt mit dem Laravel 4.2 Framework. Ich möchte den Befehl php artisan migrate ausführen, aber wenn ich diesen Befehl ausführe, wird ein Fehler angezeigt:

  

[PDOException]
      SQLSTATE [42000]: Syntaxfehler oder Zugriffsverletzung: 1142 CREATE-Befehl für Benutzer 'abc'@'10.1.1.27' für Tabelle 'Migrationen' verweigert

Ich denke, ich habe die Projektdateien und die Datenbank auf verschiedenen Servern abgelegt, deshalb erhalte ich diesen Fehler.

Datenbankserver: 10.1.1.56

Projektserver: 10.1.1.27 (localhost)

    
anil 17.11.2017, 10:09
quelle

2 Antworten

5

Dieser Fehler zeigt an, dass die entfernte MySQL-Datenbank nicht so konfiguriert ist, dass bestimmte vom Benutzer abc ausgeführte Operationen von der IP-Adresse 10.1.1.27 zugelassen werden. In vielen Fällen sind MySQL-Benutzer so eingerichtet, dass sie den Zugriff vom selben -Host als Datenbankserver zulassen, aber wir müssen explizit GRANT Zugriff für Clients, die sich von einem Remote-Host aus mit der Datenbank verbinden.

Wir können die folgenden Befehle verwenden, um dem Benutzer abc access von entfernten Hosts zu gewähren. Wir müssen diese Befehle als Benutzer ausführen, der anderen Benutzern Berechtigungen erteilen kann (z. B. der Benutzer root der Datenbank):

%Vor%

Ersetzen Sie database durch den Namen der Datenbank der Anwendung, die in .env oder config / database.php konfiguriert ist. Der Platzhalter '%' in 'username'@'%' gibt an, dass wir diesem Benutzer Berechtigungen von jeder IP-Adresse erteilen möchten. Wenn wir dem Benutzer den Zugriff von keiner IP-Adresse aus erlauben möchten, können wir den Zugriff auf bestimmte IP-Adressen beschränken, indem wir den Platzhalter durch die zu erlaubende Adresse ersetzen ( 10.1.1.27 in diesem Fall).

Abhängig von den Anforderungen des Projekts müssen wir einem Benutzer möglicherweise nicht alle Berechtigungen für eine Datenbank erteilen. Eine Liste der verfügbaren Berechtigungen, die wir zuweisen können, finden Sie in der Dokumentation .

    
Cy Rossignol 20.11.2017, 08:17
quelle
0

1142 CREATE command denied to user 'abc'@'10.1.1.27' for table 'migrations'

Der obige Befehl bedeutet einfach, dass der Benutzer keine CREATE Berechtigung für die verbundene Datenbank hat. Zuallererst müssen Sie dem Benutzer die Berechtigungen in der Datenbank gewähren und danach die Migration ausführen.

Erklärung: Wenn Sie migrate ausführen, wird eine Tabelle mit dem Namen migration in der Datenbank erstellt, die den Migrationsstatus beibehält, und Sie haben keine CREATE Erlaubnis deshalb gibt es einen Fehler.

    
Mayank Pandeyz 20.11.2017 08:32
quelle

Tags und Links