Maison > base de données > tutoriel mysql > Erreur de migration Laravel 5.4 : comment corriger « La clé spécifiée était trop longue » ?

Erreur de migration Laravel 5.4 : comment corriger « La clé spécifiée était trop longue » ?

Barbara Streisand
Libérer: 2024-12-18 21:39:11
original
888 Les gens l'ont consulté

Laravel 5.4 Migration Error: How to Fix

Erreur de migration Laravel : "La clé spécifiée était trop longue"

Problème rencontré :

Lors de la tentative d'utilisation du make Commande :auth dans Laravel 5.4, une erreur de migration de base de données se produit :

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
Copier après la connexion

Solution :

Pour résoudre ce problème, couramment rencontré lors de l'utilisation du moteur MySQL InnoDB par défaut, il existe deux approches :

Méthode AppServiceProvider :

  1. Ouvrir app/Providers/AppServiceProvider.php.
  2. Ajoutez le code suivant dans la méthode de démarrage :
use Illuminate\Support\Facades\Schema;

/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    Schema::defaultStringLength(191);
}
Copier après la connexion

Configuration du serveur MySQL :

Vous pouvez également modifier la configuration du serveur MySQL pour activer l'option innodb_large_prefix. Les instructions spécifiques pour activer cette option varient en fonction de la configuration de votre base de données. Reportez-vous à la documentation MySQL pour obtenir des conseils.

Notes supplémentaires :

  • La solution fournie est spécifique à Laravel 5.4. Pour les autres versions, reportez-vous à la documentation correspondante.
  • La méthode defaultStringLength(191) définit la longueur de chaîne maximale par défaut pour toutes les colonnes de la base de données à 191 caractères.
  • L'option innodb_large_prefix permet à MySQL d'utiliser un préfixe plus grand pour les index, résolvant la limitation de longueur de clé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal