ホームページ >データベース >mysql チュートリアル >Laravel 5.4移行エラー:「指定されたキーが長すぎます」を修正する方法は?

Laravel 5.4移行エラー:「指定されたキーが長すぎます」を修正する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-18 21:39:11811ブラウズ

Laravel 5.4 Migration Error: How to Fix

Laravel 移行エラー:「指定されたキーが長すぎます」

問題が発生しました:

make を使用しようとしたときLaravel 5.4の:authコマンド、データベース移行エラー発生:

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

解決策:

デフォルトの MySQL InnoDB エンジンを使用するときによく発生するこの問題を解決するには、2 つのアプローチがあります:

AppServiceProviderメソッド:

  1. Open app/Providers/AppServiceProvider.php.
  2. ブート メソッド内に次のコードを追加します:
use Illuminate\Support\Facades\Schema;

/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    Schema::defaultStringLength(191);
}

MySQL サーバー構成:

または、MySQL サーバー構成を変更して innodb_large_prefix オプションを有効にすることもできます。このオプションを有効にするための具体的な手順は、データベースの設定によって異なります。ガイダンスについては、MySQL ドキュメントを参照してください。

追加メモ:

  • 提供されるソリューションは Laravel 5.4 に固有です。他のバージョンについては、関連するドキュメントを参照してください。
  • defaultStringLength(191) メソッドは、すべてのデータベース列のデフォルトの最大文字列長を 191 文字に設定します。
  • innodb_large_prefix オプションにより、MySQL はインデックスのプレフィックスが大きくなり、キーの長さの制限が解決されました。

以上がLaravel 5.4移行エラー:「指定されたキーが長すぎます」を修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。