MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Laravel:Посоченият ключ беше твърде дълъг; максималната дължина на ключа е 767 байта

Проблемът:"Указаният ключ беше твърде дълъг; максималната дължина на ключа е 767 байта"

Един от тези проблеми, които може да срещнете при използване на PHP рамката Laravel, е този:

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

След известно проучване разбрах, че се появява при използване на по-стари версии на MySQL (преди 5.7.8) или MariaDB (преди 10.2.2). В моя случай беше MariaDB.

Решение №1:

В Laravel това може да бъде разрешено просто чрез промяна на конфигурацията на вашия доставчик на услуги на приложение (в app/Providers/AppServiceProvider.php ) със следното:

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);
}

След това може да се наложи да изградите отново вашата база данни с помощта на php artisan migrate:fresh --seed - това напълно ще нулира вашата база данни и ще започне наново.

Решение №2:

Можете също да надстроите своя сървър на база данни. Това не е обсъждано тук, тъй като е много специфично за системата. DuckDuckGo е ваш приятел 💪️


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи операторът BINARY в MariaDB

  2. Как да замените междинен MySQL или MariaDB Master с Binlog сървър с помощта на MaxScale

  3. Надстройките с нулев престой стават лесни с ClusterControl

  4. 4 функции, които извличат микросекунди от времева стойност в MariaDB

  5. Как работи MONTH() в MariaDB