Laravel dan MariaDB di XAMPP

Wabi Teknologi Indonesia
1 min readFeb 25, 2019

--

Laravel mengubah charset menjadi utf8mb4 mulai Laravel 5.4. Perubahan ini mengakibatkan beberapa penyesuaian. Pada XAMPP versi terakhir (7.3.x), MariaDB yang disertakan adalah MariaDB versi 10.1.38. Versi ini memerlukan penyesuaian (semua versi dibawah 10.2.2 harus disesuaikan). Jika tidak dilakukan penyesuaian, mungkin pada saat melakukan migrasi akan muncul error:

PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes")

Error di atas terjadi misalnya pada saat menggunakan make:auth saat melakukan migrasi (php artisan migrate). Untuk memperbaiki ini ada file yang harus diedit. Saat melakukan migrasi, Laravel harus diberitahu default panjang string yang dihasilkan oleh migrasi. Edit file app/Providers/AppServiceProvider.php dengan menetapkan default panjang string (perubahan ada pada bagian yang dicetak tebal):

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

Setelah itu, migrasi akan berjalan dengan baik:

$ php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
$

Catatan: sebaiknya database di MariaDB di-create menggunakan
utf8mb4_unicode_ci charset.

--

--