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)
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):
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 .
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.
Tags und Links php mysql laravel-4.2