라라벨 세일 DB 접속 에러 해결방법

|

DB 접속 에러 생기는 이유

결국은 포트가 겹쳤거나 도커 컨테이너에 에러가 났거나 입니다.
이를 해결하기 위해서는 아래의 방법을 같이 진행하시면 됩니다.

  • Illuminate\Database\QueryException
  • SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for mysql failed: nodename nor servname provided, or not known (Connection: mysql, SQL: select table_name as name, (data_length + index_length) as size, table_comment as comment, engine as engine, table_collation as collation from information_schema.tables where table_schema = ‘example_app’ and table_type in (‘BASE TABLE’, ‘SYSTEM VERSIONED’) order by table_name)

포트가 겹쳤을 때

.env 에 포워드 변경

FORWARD_DB_PORT=3308
FORWARD_REDIS_PORT=6378

.env 에 DB_HOST 변경

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=example_app
DB_USERNAME=sail
DB_PASSWORD=password

DB_HOST가 localhost 로 되어있다면 mysql 로 변경해보세요.

성공하면 위와 같이 뜨게 됩니다.

DB 연결 실패

결론적으로 라라벨 sail 도커에서 mysql 이 제대로 실행이 되지 않아 생기는 문제입니다.
빠른 해결방법은 volume 부분을 초기화 하여 해결하면 됩니다.

문제 위치

php artisan migrate 가 먹히지 않는 문제가 발생했습니다.
DB 커넥션 문제인 것 같아서 .env 에 다음과 같이 포워드 처리를 진행해 보았습니다만 해결은 안되었습니다.

  • laravel sail Another process with pid 62 is using unix socket file

mysql 에 접근해보니 위의 문제가 나오는 것을 확인할 수 있었고 스택 오버 플로우에서 답을 찾을 수 있었습니다.

docker-compose down --volumes

프로젝트 폴더에 접근하여 위의 명령어를 입력합니다 (터미널 아님)

sail up --build

혹은 ./vendor/bin/sail up --build 을 입력하여 문제를 해결하면 됩니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다