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

Problem

Sejak Laravel 5.4, secara default apabila menjalankan command:

php artisan migrate

Maka akan mendapatkan error apabila menggunakan versi MySQL v5.7.7

Solution

Solution: 1

Problem diatas sebabkan karena Laravel mengubah default database character set menjadi utf8mb4. Untuk mengasi masalah tersebut, buka file App\Providers\AppServiceProvider.php kemudian pada top section masukkan code berikut:

use Illuminate\Support\Facades\Schema;

Kemudian pada boot method, tambahkan code berikut:

Schema::defaultStringLength(191);

Sehingga code lengkap dari AppServiceprovider.php menjadi seperti ini:

<?php
​
namespace App\Providers;
​
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
​
class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Schema::defaultStringLength(191);
    }
​
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

Pilih Salah Satu Untuk Login


Facebook Google

Review Users

  • ""
  • ""