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,97
Dollar Venda R$ 5,97
Data 22/01/2025

January 2025
S M T W T F S
 1234
567891011
12131415161718
19202122232425
262728293031