Docker: Laravel artisan 명령을 실행하는 동안 연결 거부 오류가 발생했습니다.
P粉787820396
2023-08-07 16:24:22
<p>저는 Docker에서 Laravel 5.4를 실행하고 있습니다. 이것이 내 도크 구성입니다. yml 파일:</p>
<pre class="brush:php;toolbar:false;">버전: '2'
서비스:
앱:
컨테이너 이름: laravel_app
이미지: webdevops/php-apache-dev:ubuntu-16.04
연결:
- mysql
의존:
- mysql
포트:
- 8888:80
볼륨:
- .:/앱
환경:
도커: '사실'
WEB_DOCUMENT_ROOT: '/app/public'
WEB_NO_CACHE_PATTERN: '.(.*)$$'
Working_dir: '/앱'
MySQL:
이미지: mariadb:최신
포트:
- 8889:80
환경:
MYSQL_ROOT_PASSWORD: '개발자'
MYSQL_DATABASE: '개발자'
MYSQL_USER: '개발자'
MYSQL_PASSWORD: '개발자'</pre>
<p>이것은 내 <code>.env</code> 파일의 관련 부분입니다:</p>
<pre class="brush:php;toolbar:false;">DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=8889
DB_DATABASE=dev
DB_USERNAME=dev
DB_PASSWORD=dev</pre>
<p>Laravel의 환영 페이지가 보입니다. 작동 중입니다. 하지만 php artisan migration을 실행하면 다음 오류가 발생합니다: </p>
<인용문>
<p>SQLSTATE[HY000] [2002] 연결이 거부되었습니다(SQL: table_schema = dev 및 table_name = migrations인 information_schema.tables에서 * 선택)</p>
</인용문>
<p>.env 파일에서 호스트 및 포트 매개변수를 수정해 보았습니다. </p>
127.0.0.1 대신 mysql 컨테이너의 이름을 입력하세요
으아아아먼저 docker-compose.yml 파일을 편집하세요
으아아아그런 다음 .env 파일에서 올바른 데이터베이스 포트를 설정하세요.
데이터베이스 포트가 잘못되었습니다. Docker 내부에서 실행되는 데이터베이스 인스턴스를 통해 노출된 포트에 연결하려고 합니다. 이 경우 .env 파일에서 DB_PORT=3306
을 사용해야 합니다.