Heim >Datenbank >MySQL-Tutorial >Laravel-Migrationsfehler: Wie kann das Problem „Angegebener Schlüssel war zu lang' behoben werden?
Laravel-Migrationsfehler: Behebung des Problems „Angegebener Schlüssel war zu lang“
Beim Versuch, den PHP-Artist make:auth von Laravel 5.4 zu verwenden Wenn Sie den Befehl ausführen, können Benutzer auf Folgendes stoßen Fehler:
[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))
Ursache:
Der Fehler tritt auf, wenn die Länge des Indexschlüssels die maximal zulässige Länge für die Datenbank-Engine überschreitet. Standardmäßig haben MySQL und seine Varianten eine maximale Indexschlüssellänge von 767 Bytes.
Lösung:
Methode 1: Anwendungsdienstanbieter aktualisieren
Fügen Sie, wie in der offiziellen Laravel-Dokumentation empfohlen, den folgenden Code zu Ihrer app/Providers/AppServiceProvider.php hinzu Datei:
use Illuminate\Support\Facades\Schema; /** * Bootstrap any application services. * * @return void */ public function boot() { Schema::defaultStringLength(191); }
Dies erhöht die Standardzeichenfolgenlänge für alle Migrationen auf 191 Zeichen, was innerhalb der zulässigen Grenze liegt.
Methode 2: Aktivieren Sie das große InnoDB-Präfix
Alternativ können Benutzer die Option innodb_large_prefix für ihre MySQL-Datenbank aktivieren. Anweisungen zur ordnungsgemäßen Aktivierung dieser Option finden Sie in der Dokumentation der Datenbank. Diese Lösung ermöglicht längere Indexschlüssel und eignet sich daher besser für größere Datensätze.
Das obige ist der detaillierte Inhalt vonLaravel-Migrationsfehler: Wie kann das Problem „Angegebener Schlüssel war zu lang' behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!