MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Laravel:Angegebener Schlüssel war zu lang; Die maximale Schlüssellänge beträgt 767 Byte

Das Problem:"Der angegebene Schlüssel war zu lang; die maximale Schlüssellänge beträgt 767 Byte"

Eines dieser Probleme, auf die Sie bei der Verwendung des PHP-Frameworks Laravel stoßen könnten, ist dieses:

Specified key was too long; max key length is 767 bytes

Nach einiger Recherche habe ich herausgefunden, dass es bei der Verwendung älterer Versionen von MySQL (vor 5.7.8) oder MariaDB (vor 10.2.2) auftaucht. In meinem Fall war es MariaDB.

Lösung Nr. 1:

In Laravel kann dies einfach gelöst werden, indem Sie die Konfiguration Ihres App-Dienstanbieters ändern (in app/Providers/AppServiceProvider.php ) mit den folgenden:

use Illuminate\Support\Facades\Schema;

public function boot()
{
    /**
     * Ensure we aren't running into `Specified key was too long; max key length is 767 bytes`
     *
     * @see https://peterthaleikis.com/posts/laravel:-specified-key-was-too-long-max-key-length-is-767-bytes/
     **/
    Schema::defaultStringLength(191);
}

Danach müssen Sie möglicherweise Ihre Datenbank mit php artisan migrate:fresh --seed neu erstellen - Dadurch wird Ihre Datenbank vollständig zurückgesetzt und Sie können neu beginnen.

Lösung #2:

Sie können auch Ihren Datenbankserver aktualisieren. Dies wurde hier nicht diskutiert, da es sehr systemspezifisch ist. DuckDuckGo ist dein Freund 💪️