IT

LUMEN : SQLSTATE [ 42000 ]를 수정하는 방법:구문 오류 또는 액세스 위반: larabel lumen에서 1071

itgroup 2023. 1. 15. 17:02
반응형

LUMEN : SQLSTATE [ 42000 ]를 수정하는 방법:구문 오류 또는 액세스 위반: larabel lumen에서 1071

루멘 프레임워크로 PHP 프로젝트를 시작했습니다.

명령어를 실행하려고 하면php artisan migrate:fresh콘솔에서 다음과 같은 오류가 발생합니다.

SQLSTATE [ 42000 ]:구문 오류 또는 액세스 위반: 1071

이는 Larabel에서 잘 알려진 오류이지만 이 질문은 문서에 나와 있듯이 lumen에는 부팅 방법이 없기 때문에 중복되지 않습니다.

Larabel은 기본적으로 utf8mb4 문자 집합을 사용합니다. 여기에는 데이터베이스에 "emojis" 저장 지원이 포함됩니다.5.7.7 이전 버전의 MySQL 또는 10.2.2 이전 버전의 MariaDB를 실행하고 있는 경우 MySQL에서 마이그레이션에 의해 생성된 기본 문자열 길이를 수동으로 구성해야 할 수 있습니다.이를 설정하려면 AppServiceProvider 내에서 Schema::defaultStringLength 메서드를 호출합니다.

그러나 마이크로프레임워크 Lumen에서 이 수정을 사용하려고 하면 오류가 발생합니다.

이 오류는 기본적으로 사용자가 설정하지 않았기 때문에 발생합니다.defaultStringLengthboot()기능.

[PDOException] SQLSTATE [ 42000 ] :구문 오류 또는 액세스 위반: 1071

해결책:

App/Providers/AppServiceProvider에 아래 코드를 추가합니다.php 메서드:

use Illuminate\Support\Facades\Schema;

public function boot()
{
    Schema::defaultStringLength(191);
}

Lumen에서는 라인 코멘트를 해제해야 합니다.

$app->register(App\Providers\AppServiceProvider::class);부트스트랩/app.php에서

언급URL : https://stackoverflow.com/questions/54991202/lumen-how-to-fix-the-sqlstate42000-syntax-error-or-access-violation-1071-o

반응형