MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Laravel:Kunci yang ditentukan terlalu panjang; panjang kunci maksimal adalah 767 byte

Masalah:"Kunci yang ditentukan terlalu panjang; panjang kunci maksimal adalah 767 byte"

Salah satu masalah yang mungkin Anda temui saat menggunakan framework PHP Laravel adalah yang ini:

Specified key was too long; max key length is 767 bytes

Setelah beberapa penelitian, saya menemukan itu muncul ketika menggunakan versi MySQL yang lebih lama (sebelum 5.7.8) atau MariaDB (sebelum 10.2.2). Itu adalah MariaDB dalam kasus saya.

Solusi #1:

Di Laravel ini dapat diselesaikan hanya dengan mengubah konfigurasi penyedia layanan aplikasi Anda (di app/Providers/AppServiceProvider.php ) dengan berikut ini:

use Illuminate\Support\Facades\Schema;

public function boot()
{
    /**
     * Ensure we aren't running into `Specified key was too long; max key length is 767 bytes`
     *
     * @see https://peterthaleikis.com/posts/laravel:-specified-key-was-too-long-max-key-length-is-767-bytes/
     **/
    Schema::defaultStringLength(191);
}

Setelah ini, Anda mungkin perlu membangun kembali database Anda menggunakan php artisan migrate:fresh --seed - ini akan menyetel ulang database Anda sepenuhnya dan memulai dari awal.

Solusi #2:

Anda juga dapat mengupgrade server database Anda. Ini belum dibahas di sini karena sangat khusus untuk sistem. DuckDuckGo adalah temanmu ️


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mempersiapkan Server MySQL atau MariaDB untuk Produksi - Bagian Satu

  2. Cara Menginstal dan Mengamankan MariaDB 10 di CentOS 6

  3. Bagaimana UTC_TIMESTAMP() Bekerja di MariaDB

  4. Cara Membuat Database MySQL atau MariaDB Anda Sangat Tersedia di AWS dan Google Cloud

  5. WEEKDAY() vs DAYOFWEEK() di MariaDB:Apa Bedanya?