
Cómo solucionar el error "Specified key was too long error" en Laravel
Jorge García
Comparte:
Última actualización
Comparte:
Si estás buscando una solución para este error:
[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))
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
Podemos solucionarlo de 3 formas:
- Actualizar la versión de MySQL
- Modificar el archivo
config/database
- Modificar el archivo
app/Providers/AppServiceProvider.php
Solución 1
Si utilizas MariaDB o versiones anteriores de MySQL v5.7.7 simplemente actualiza a la versión estable más reciente y no volverás a tener este problema.
Solución 2
Si no puedes o no quieres actualizar MySQL, intenta modificando el engine de mysql en el archivo
config/database.php
'mysql' => [
...
'engine' => 'InnoDB',
]
Solución 3
Si por algún motivo no te funciona la solución 2, agrega la siguiente línea al archivo
app/Providers/AppServiceProvider.php
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(191);
}
¿Por qué ocurre este error?
Desde la versión 5.4 de Laravel se realizó un cambio en el conjunto de caracteres predeterminado de la base de datos, y ahora es utf8mb4, que incluye soporte para almacenar emojis.
Esto solo afecta a las aplicaciones que utilicen versiones anteriores a MySQL v5.7.7
Esto solo afecta a las aplicaciones que utilicen versiones anteriores a MySQL v5.7.7
Tiza (204 xp)
Gracias! Y esta estupendo que por fin alguien me de una explicación de qué y por qué. Un saludo!
1
javier sanchez (16 xp)
Muchísimas gracias por compartir. Estar empezando y que te salten errores de este tipo es muy desalentador. Nuevo fan tienes.
1
Gustavo Camilo (188 xp)
Mil gracias, usando la solución 2 pude resolverlo
Agustín Nahuel Parada (16 xp)
gracias genio!
XMedia Software (xmediasoftware) (16 xp)
Me sirvio la opcion No. 3, muchas gracias
Sergio Vega (16 xp)
Gracias, buena ayuda rapida 👍😁
Freddy Arriaga Cruz (16 xp)
Gracias, ni chat GPT fue tan preciso
2
Artículos relacionados
Laravel
Traduce tu aplicación Laravel al español con Laravel Lang (2025)
Aprende a traducir tu aplicación Laravel 12 al español en solo 3 pasos con Laravel Lang. Guía rápida...Leer más
Jorge García (3034 xp)
Laravel
Guía Completa de Cursos Laravel 2025: Desde Principiante hasta Experto
Descubre la ruta de aprendizaje completa para dominar Laravel en 2025. Más de 30 cursos especializad...Leer más
Jorge García (3034 xp)
Laravel
Laravel 12: Novedades y Todo lo que Necesitas Saber
Laravel 12 ha llegado con mejoras en rendimiento, nuevos Starter Kits para React, Vue y Livewire, co...Leer más
Jorge García (3034 xp)
Laravel
¿Cuál es la última versión de Laravel?
En la actualidad, la última versión oficial de Laravel es la 11, y fue lanzada el 12 de marzo de 202...Leer más
Jorge García (3034 xp)