관리 메뉴

java,javascript,android,php,sql,공부용,메모용

라라벨8 - Laravel Sail에서 php artisan migrate 오류 해결 방법 (mysql 연결 실패) 본문

개발/php

라라벨8 - Laravel Sail에서 php artisan migrate 오류 해결 방법 (mysql 연결 실패)

yy_dd2 2026. 3. 18. 17:16
반응형

[Laravel + Sail] php artisan migrate 오류 해결 방법 (mysql 연결 실패)

✔️ 결론 (가장 중요)

Laravel Sail(Docker 환경)을 사용하는 경우
php artisan이 아니라 반드시 sail artisan으로 실행해야 합니다

sail artisan migrate

❗ 문제 상황

마이그레이션을 실행하려고 다음과 같이 입력했을 때:

php artisan migrate

아래와 같은 오류가 발생:

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for mysql failed

❗ 원인

이 오류는 다음 이유 때문에 발생합니다:

  • MySQL → Docker 컨테이너 내부에 존재
  • php artisan → 로컬(맥북)에서 실행

즉,

서로 다른 환경에서 실행되어 MySQL을 찾지 못하는 문제


✔️ 해결 방법

Docker 환경에서는 반드시 Sail을 통해 실행해야 합니다:

./vendor/bin/sail artisan migrate

또는 alias 설정 후:

sail artisan migrate

✔️ alias 설정 방법 (선택)

매번 길게 입력하기 번거롭다면:

alias sail="./vendor/bin/sail"

영구 적용하려면:

nano ~/.zshrc

아래 추가:

alias sail="./vendor/bin/sail"

적용:

source ~/.zshrc

✔️ 정리

잘못된 명령어올바른 명령어

php artisan migrate sail artisan migrate

✔️ 핵심 요약

  • Laravel Sail 사용 시 모든 Artisan 명령어는 sail을 통해 실행
  • php artisan은 Docker 환경에서는 정상 동작하지 않음
  • MySQL 연결 오류가 나면 대부분 실행 위치 문제

✔️ 한 줄 정리

Laravel Sail 환경에서는 항상 sail artisan을 사용해야 한다

 


[Laravel Sail] 자주 사용하는 기본 명령어 정리 (간단 요약)

✔️ 1. 프로젝트 폴더 이동

cd ~/documents/laravel/laravel_docker/sample

라라벨 프로젝트 폴더로 이동


✔️ 2. Sail 실행 (도커 실행)

./vendor/bin/sail up -d

라라벨 + MySQL 등 컨테이너를 백그라운드 실행


✔️ 3. Sail 상태 확인

./vendor/bin/sail ps

현재 실행 중인 컨테이너 확인


✔️ 4. Sail 종료

./vendor/bin/sail down

실행 중인 컨테이너 종료


✔️ 5. sail 명령어 짧게 사용 (alias 설정)

alias sail="./vendor/bin/sail"

긴 명령어를 sail로 줄여서 사용

(영구 저장)

nano ~/.zshrc
alias sail="./vendor/bin/sail"
source ~/.zshrc

✔️ 6. 마이그레이션 파일 생성

sail artisan make:migration create_bookdetails_table

DB 테이블 생성용 파일 만들기


✔️ 7. 마이그레이션 실행

sail artisan migrate

작성한 테이블 구조를 DB에 반영


✔️ 핵심 요약

  • Docker 환경에서는 php artisan ❌ → sail artisan ✅
  • 기본 흐름:
cd 프로젝트폴더
sail up -d
sail artisan migrate

✔️ 한 줄 정리

Laravel Sail은 모든 명령어를 sail을 붙여서 실행한다

 

 

 

마이그레이션 공부하다가 냅다 정리하기

sail mysql; 접속해서

show tables; 해서 테이블 생성목록 확인하고

desc authors; 하면 테이블의 컬럼 값 확인 가능

반응형
Comments