2026. 4. 25. 16:18ㆍPHP/Larabel
회사에서 사용하는 기술 스택을 확인해 보니 PHP, Laravel, Vue.js 주로 사용하는것같더라... 기존에는 Java/Spring 기반으로 프로젝트를 진행해 왔지만, 실제 회사 환경에 빠르게 적응하려면 Laravel 기반의 백엔드 구조도 직접 만들어보는 것이 필요하다고 판단했다.
이번 글에서는 Laravel 프로젝트를 처음 생성하고, 기본 SQLite 설정에서 MySQL로 변경한 뒤 DBeaver에서 테이블 생성까지 확인한 과정을 정리한다.
1. 개발 환경
이번 실습 환경은 다음과 같다.
OS: Windows
PHP: 8.3.9
Laravel: 13.6.0
DB: MySQL
DB Tool: DBeaver 25.3.3
Terminal: Git Bash
처음에는 Git Bash에서 Laravel 프로젝트를 생성했고, 데이터베이스 확인은 DBeaver를 사용했다.
2. Composer 설치 확인
Laravel 프로젝트를 생성하려면 Composer가 필요하다. 먼저 터미널에서 Composer가 정상적으로 설치되어 있는지 확인했다.
composer -V
처음에는 Composer 명령어가 잡히지 않아 Windows용 Composer Installer를 설치했다. 설치 후 새 터미널을 열고 다시 확인하니 정상적으로 Composer 명령어가 실행되었다.
3. Laravel 프로젝트 생성
프로젝트는 바탕화면 경로에서 생성했다.
cd ~/Desktop
composer create-project laravel/laravel shuttle-admin-backend
프로젝트 생성이 완료되면 아래와 같은 Laravel 기본 구조가 만들어진다.
app/
bootstrap/
config/
database/
public/
resources/
routes/
storage/
vendor/
.env
artisan
composer.json
여기서 Laravel이 편하다고 느꼈던 부분은 명령어 한 번으로 .env, 라우팅, 마이그레이션, 기본 디렉토리 구조가 한 번에 생성된다는 점이었다.
Spring Boot에서 직접 설정하던 것들과 비교하면, Laravel은 초기에 필요한 골격을 빠르게 만들어주는 느낌이 강했다.
4. Laravel 서버 실행
프로젝트 폴더로 이동한 뒤 서버를 실행했다.
cd shuttle-admin-backend
php artisan serve
정상적으로 실행되면 다음과 같은 메시지가 나온다.
INFO Server running on [http://127.0.0.1:8000].
여기서 처음 실수한 부분이 있었다. 브라우저에 127.0.0.1만 입력했더니 접속이 되지 않았다.
Laravel 개발 서버는 8000 포트에서 실행되고 있었기 때문에 정확히 아래 주소로 접속해야 했다.
http://127.0.0.1:8000
5. 첫 번째 오류 - SQLite driver 문제
처음 접속했을 때 Laravel 화면이 바로 뜨지 않고 다음과 같은 오류가 발생했다.
could not find driver
Connection: sqlite
Database: database/database.sqlite
원인은 .env 파일의 기본 DB 설정이 SQLite로 되어 있었기 때문이다.
DB_CONNECTION=sqlite
하지만 현재 PHP 환경에는 SQLite 드라이버가 활성화되어 있지 않았기 때문에 DB 연결 과정에서 오류가 발생했다.
어차피 이후 MySQL을 사용할 예정이었기 때문에 SQLite 설정을 우회하지 않고 바로 MySQL 연결로 변경하기로 했다.
6. DBeaver에서 MySQL 연결
MySQL 관리는 DBeaver를 사용했다.
DBeaver에서 새 연결을 만들고 MySQL을 선택한 뒤 다음과 같이 입력했다.
Server Host: localhost
Port: 3306
Username: root
Password: 본인 MySQL 비밀번호
처음에는 33066 포트로 연결을 시도했지만 해당 포트에 MySQL 서버가 떠 있지 않아 연결이 거부되었다.
Connection refused: getsockopt
Communications link failure
결국 일반적인 MySQL 기본 포트인 3306으로 변경해서 진행했다.
7. shuttle_admin 데이터베이스 생성
Laravel 프로젝트에서 사용할 데이터베이스를 생성했다.
DBeaver SQL Editor에서 다음 쿼리를 실행했다.
CREATE DATABASE shuttle_admin
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
생성 후 shuttle_admin 데이터베이스가 정상적으로 보이는 것을 확인했다.
8. Laravel .env MySQL 설정 변경
Laravel 프로젝트의 .env 파일을 열어 DB 설정을 수정했다.
기존 설정은 SQLite였다.
DB_CONNECTION=sqlite
이를 MySQL 설정으로 변경했다.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=shuttle_admin
DB_USERNAME=root
DB_PASSWORD=본인비밀번호
비밀번호가 root라면 아래처럼 작성하면 된다.
DB_PASSWORD=root
비밀번호가 없다면 비워두면 된다.
DB_PASSWORD=
9. 두 번째 오류 - pdo_mysql driver 문제
.env를 MySQL로 변경한 뒤 마이그레이션을 실행했다.
php artisan migrate
그런데 다음 오류가 발생했다.
could not find driver
Connection: mysql
이번에는 MySQL 서버 문제가 아니라 PHP의 MySQL 드라이버 문제였다.
DBeaver가 MySQL에 연결되는 것과 Laravel이 MySQL에 연결되는 것은 별개다. DBeaver는 자체 드라이버로 MySQL에 접속하지만, Laravel은 PHP의 PDO MySQL 드라이버를 사용한다.
즉, PHP에서 pdo_mysql 확장이 활성화되어 있어야 한다.
PHP 설정 파일 위치를 확인했다.
php --ini
그리고 PHP 모듈 목록에서 MySQL 관련 확장을 확인했다.
php -m | grep -i mysql
pdo_mysql이 보이지 않으면 php.ini 파일에서 아래 주석을 해제해야 한다.
;extension=pdo_mysql
;extension=mysqli
아래처럼 세미콜론을 제거한다.
extension=pdo_mysql
extension=mysqli
수정 후 터미널을 새로 열고 다시 마이그레이션을 실행했다.
10. 마이그레이션 성공
다시 마이그레이션을 실행했다.
php artisan migrate
이번에는 정상적으로 실행되었다.

Laravel이 MySQL에 정상적으로 연결되었고, 기본 테이블들이 생성되었다.
11. DBeaver에서 테이블 확인
DBeaver에서 shuttle_admin 데이터베이스를 선택하고 다음 쿼리를 실행했다.
show tables;
결과는 다음과 같았다.

Laravel 기본 마이그레이션으로 생성된 테이블들이 정상적으로 확인되었다.
12. Laravel 기본 화면 확인
마지막으로 다시 Laravel 서버를 실행했다.
php artisan serve
브라우저에서 아래 주소로 접속했다.
http://127.0.0.1:8000

이번에는 DB 오류 없이 Laravel 기본 화면이 정상적으로 출력되었다.
정리
이번 실습에서는 Laravel 프로젝트를 생성하고 MySQL과 연결하는 기본 흐름을 진행했다.
정리하면 다음 순서다.
- Composer 설치 확인
- Laravel 프로젝트 생성
- php artisan serve로 서버 실행
- 기본 SQLite 설정 오류 확인
- MySQL 데이터베이스 생성
- .env를 MySQL 설정으로 변경
- pdo_mysql 드라이버 활성화
- php artisan migrate 실행
- DBeaver에서 테이블 생성 확인
- Laravel 기본 화면 확인
이번 과정에서 중요한 점은 단순히 Laravel 화면을 띄우는 것이 아니라, Laravel이 어떤 방식으로 .env 설정을 읽고 DB에 연결하는지 직접 확인했다는 것이다.
특히 DBeaver 연결 성공과 Laravel DB 연결 성공은 별개라는 점을 알게 되었다. DBeaver는 DB GUI 도구이고, Laravel은 PHP의 PDO 드라이버를 통해 MySQL에 연결하기 때문에 PHP 확장 설정도 반드시 확인해야 한다.