>데이터 베이스 >MySQL 튜토리얼 >Laravel 마이그레이션 오류: '지정된 키가 너무 깁니다' 문제를 해결하는 방법은 무엇입니까?

Laravel 마이그레이션 오류: '지정된 키가 너무 깁니다' 문제를 해결하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-16 04:16:13877검색

Laravel Migration Error: How to Fix the

Laravel 마이그레이션 오류: "지정된 키가 너무 깁니다" 문제 해결

Laravel 5.4의 php artisan make:auth를 사용하려고 할 때 명령을 실행하면 사용자는 다음과 같은 상황을 겪을 수 있습니다. 오류:

[Illuminate\Database\QueryException]
  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
  (SQL: alter table users add unique users_email_unique(email))

원인:

인덱스 키의 길이가 데이터베이스 엔진에 허용되는 최대 길이를 초과하는 경우 오류가 발생합니다. 기본적으로 MySQL 및 그 변형의 최대 인덱스 키 길이는 767바이트입니다.

해결책:

방법 1: 애플리케이션 서비스 공급자 업데이트

공식 Laravel 문서에서 권장하는 대로 다음 코드를 app/Providers/AppServiceProvider.php 파일:

use Illuminate\Support\Facades\Schema;

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

이렇게 하면 모든 마이그레이션의 기본 문자열 길이가 허용되는 한도 내인 191자로 늘어납니다.

방법 2: InnoDB Large Prefix 활성화

또는 사용자가 MySQL 데이터베이스에 대한 innodb_large_prefix 옵션. 이 옵션을 올바르게 활성화하는 방법에 대한 지침은 데이터베이스 설명서를 참조하세요. 이 솔루션은 더 긴 인덱스 키를 허용하므로 더 큰 데이터 세트에 더 적합합니다.

위 내용은 Laravel 마이그레이션 오류: '지정된 키가 너무 깁니다' 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.