보통 이 에러는 로컬 개발시 도커에서 최초로 설치할 때 DB에러로 나올 것이다.
에러 메시지대로 DB 드라이버가 없어서 그런것이다.
이 에러 원인은 도커의 구동 방식에대한 이해가 필요한데 도커는 컨테이너를 띄어 독립적으로 운영한다.
따라서 내 호스트(로컬 PC)에서 어떤 명령어를 실행하려면 해당 드라이버도 내 호스트에 설치가되어 있어야 한다.
만약 mysql 로 접속을 하고 싶다면 내 호스트에도
$ sudo apt install php-mysql
같이 php mysql 드라이버를 설치해야 한다.
그런데 설치를 하고 나서 artisan DB관련 명령어를 실행하면 또 아래와 같은 에러가 나오는 경우가 있다.
SQLSTATE[HY000] [2002] php_network_getaddresses 어쩌고 저쩌고
이는 DB를 따로 컨테이너로 구동했냐 안했냐의 차이로 발생한다. 다른 컨테이너로 구성했다는 건 컨테이너끼리의 원격 DB와 같은 느낌이다. 따라서 내 호스트에서 DB접속 정보로는 컨테이너로 직접 접속을 할 수 없기에 나오는 메시지다. (관련해서는 나중에 따로 한 번 글을 장황하게 써보겠다)
이런 경우는
$ docker exec 컨테이너이름 php artisan migrate
같이 명령어를 컨테이너에 직접 실행시켜주면된다.
'개발 > Laravel' 카테고리의 다른 글
라라벨 DB에 날짜가 이상하게 들어간다면 (1) | 2025.07.25 |
---|---|
라라벨(Laravel) 인스톨시 laravel: command not found 나올 때 (0) | 2025.06.18 |
라라벨(Laravel) 페이지네이션 tailwind 템플릿 수정하기 (0) | 2025.06.18 |