Heim > Datenbank > MySQL-Tutorial > Laravel-Migrationsfehler: Wie kann das Problem „Angegebener Schlüssel war zu lang' behoben werden?

Laravel-Migrationsfehler: Wie kann das Problem „Angegebener Schlüssel war zu lang' behoben werden?

Barbara Streisand
Freigeben: 2024-12-16 04:16:13
Original
878 Leute haben es durchsucht

Laravel Migration Error: How to Fix the

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))
Nach dem Login kopieren

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);
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage