SQLSTATE 42000: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes com PHP


Laravel usa o conjunto de caracteres utf8mb4 por padrão, que inclui suporte para armazenar “emojis” no banco de dados. Se você estiver executando uma versão do MySQL mais antiga do que a versão 5.7.7 ou MariaDB anterior à versão 10.2.2, talvez seja necessário configurar manualmente o comprimento da string padrão gerado pelas migrações para que o MySQL crie índices para elas. Você pode configurar isso chamando o método Schema::defaultStringLength no AppServiceProvider:

Para resolver isso siga os passos abaixo:

  1. Edite o arquivo app\Providers\AppServiceProvider.php
  2. Adicione o namespace use Illuminate\Support\Facades\Schema;
  3. Dentro do método boot adicione Schema::defaultStringLength(191)
use Illuminate\Support\Facades\Schema;

public function boot()
{
    Schema::defaultStringLength(191);
}

Fonte: https://pt.stackoverflow.com/questions/245432/sqlstate-42000-syntax-error-or-access-violation-1071-specified-key-was-too-lon

Moeda Tipo Valor
Dollar Compra R$ 5,59
Dollar Venda R$ 5,59
Data 06/06/2025

June 2025
S M T W T F S
1234567
891011121314
15161718192021
22232425262728
2930