취미/프로그래밍

Laravel Sail을 활용한 MySQL 설정과 개발환경 구축

Anything Doing OK 2025. 1. 3. 17:55

 

https://normal-operating.tistory.com/5 

 

WSL2 와 Docker를 이용한 Laravel 개발환경 구축하기

https://laravel.kr/docs/9.x/installation 라라벨 9.x - 설치하기라라벨 한글 메뉴얼 9.x - 설치하기laravel.kr공식문서가 굉장히 잘되어있다 그럼에도 설치하는 구축하는 도중 몇가지 실수할 수 있는 점이 있

normal-operating.tistory.com

해당 게시글에서 이어지는 내용입니다. 해당 프로젝트를 git 으로 관리하고,
다른 컴퓨터에 git clone 을 받은 후 실행하기까지 설정 사항과 에러 해결 방법을 작성한 게시글입니다.

git clone 후 sail up 명령어를 실행하여 해당 화면 띄워야한다.

기초되는 환경은 다음과 같다.
1. WSL2 환경 구축이 되어있을 것

2. Docker  Desktop 설치가 되고 환경 설정이 되어있을 것

 

git clone 을 받게되면 해당 폴더 구조로 이루어져 있다. (cd 해당폴더)

cp .env.example .env

명령어 실행 .env 가 없을 경우 

 

이후 .env 파일을 열어서 해당 속성으로 변경

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root

 

.env 파일이 있는 경우는 실행하지 않아도 됨

 

 

sail up 명령어가 실패할 경우

-bash: ./vendor/bin/sail: No such file or directory 로 명령어가 실패할 경우

 

해당 프로젝트 directory 에서 composer require laravel/sail --dev 명령어를 실행해준다. 

 

 

대강 이런 식으로 설치가 완료된다.

Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: 
listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

 

에러가 뜰 경우

docker ps 로 해당 포트를 사용중인 container를 찾아서 종료시키거나

.env 파일과 docker-compose.yml 파일에서 포트를 변경해준다. (추천)

   mysql:
        image: 'mysql/mysql-server:8.0'
        ports:
            - '${FORWARD_DB_PORT:-3308}:3308'
        environment:
            MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
            MYSQL_ROOT_HOST: '%'
            MYSQL_DATABASE: '${DB_DATABASE}'
            MYSQL_USER: '${DB_USERNAME}'
            MYSQL_PASSWORD: '${DB_PASSWORD}'
            MYSQL_ALLOW_EMPTY_PASSWORD: 1
        volumes:

이렇게 변경 

 

이후 ./vendor/bin/sail up 명령어를 써주면 

동작은 잘되지만

No application encryption key has been specified.
 
에러가 발생한다. 
 
해결방법은 해당 Laravel application 을 실행한 후 
./vendor/bin/sail artisan key:generate 명령어를 쳐서 APP_KEY 를 생성
 
 INFO  Application key set successfully. 

텍스트가 뜨면서 성공이 뜬다. 
 
확인하고 싶으면 .env 파일 가면 확인가능하다.

 

SQLSTATE[HY000] [2002] Connection refused (Connection: mysql, SQL: select * from `sessions` where `id` = RLR6XGlxGaJRG6AKFXqVBQtGYAmLK9cYJRcnVEOX limit 1) 웹 페이지에서 해당 에러가 뜰 경우

 

mysql image 삭제 후 재설치하고 다시 sail up 명령어를 실행하면 된다.