🧩 에러 내용
Laravel 프로젝트를 실행할 때 다음과 같은 에러 메시지가 나타날 수 있다:
![SQLSTATE[42S02]](https://blog.kakaocdn.net/dn/ditPr6/btsNucfiNng/kG6arFMxLEtfrE43s1jQ1K/img.png)
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'aero_db.sessions' doesn't exist (Connection: mysql, SQL: select * from sessions where id = ... limit 1)
이 에러는 Laravel이 세션을 데이터베이스에 저장하려고 할 때, 세션 테이블(sessions
)이 존재하지 않아 발생한다.
🔍 원인 분석
.env
파일에SESSION_DRIVER=database
로 설정되어 있음- 그러나 MySQL 데이터베이스 내에는
sessions
테이블이 아직 없음 - Laravel은 세션 데이터를 해당 테이블에 저장하려 하기 때문에 오류가 발생함
✅ 해결 방법
1️⃣ 세션 테이블 마이그레이션 생성
터미널에서 다음 artisan 명령어를 실행하여 세션 테이블 생성용 마이그레이션 파일을 만든다:
php artisan session:table

만약 database/migrations
폴더에 이미 create_sessions_table.php
파일이 존재한다면, 이 명령은 생략해도 된다.
2️⃣ 마이그레이션 실행
생성된 마이그레이션을 기반으로 실제 DB에 테이블을 생성한다:
php artisan migrate
3️⃣ 설정 확인 (선택)
.env 파일의 세션 드라이버가 database
로 되어 있어야 하며, 다음과 같이 설정되어 있어야 한다:
SESSION_DRIVER=database
4️⃣ 서버 재시작 또는 artisan serve
변경 사항을 반영하기 위해 Laravel 개발 서버를 다시 시작한다:
php artisan serve
💬 결론
Laravel에서 SESSION_DRIVER=database
설정을 사용할 경우, 반드시 sessions
테이블이 존재해야 한다. 위 과정을 통해 마이그레이션을 생성하고 반영함으로써, 해당 오류를 완전히 해결할 수 있다.