Laravel 5 응용 프로그램이 도커 컨테이너에 MariaDB 엔진을 연결할 수 없습니다.
도커 컨테이너에 새로운 Laravel 5 어플리케이션을 만듭니다.홈 URL에 접속하여 웰컴 메시지를 받을 수 있습니다.새로운 루트를 작성하려고 하면, 그 루트도 기능하고 있습니다.그런 다음 MariaDB 도커 컨테이너를 실행하여 Larabel 5 응용 프로그램에 연결합니다.여기서부터 문제가 시작됩니다.다음 명령을 사용하여 Larabel 5에서 마이그레이션을 실행하려고 할 때:
php artisan migrate --force
다음과 같은 에러 메세지가 표시됩니다.
Can't connect to MySQL server on '127.0.0.1'
.env 파일은 다음과 같습니다.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=blog
DB_USERNAME=blog
DB_PASSWORD=123456
이러한 변수는 다음과 같이 Laravel 로그 파일에 존재하기 때문에 Laravel이 데이터베이스를 연결하기 위해 사용하는 것으로 알고 있습니다.
PDO->__construct(‘mysql:127….’, ‘blog’, ‘123456’, Array)
데이터베이스 엔진은 MariaDB이며 도커 컨테이너에서 실행되고 있습니다.이 도커 컨테이너는 포트 3306을 노출하고 Laravel을 실행하는 컨테이너에 연결됩니다.컨테이너를 링크하려면 다음 도커 명령을 사용합니다.
docker run –i –t - - link mariadb:mysql miguelbgouveia/laravel:v3 /bin/bash
또한 MariaDB 도커 컨테이너가 올바른 구성으로 실행되고 있다는 것도 알고 있습니다.이는 도커 컨테이너에 연결된 phmyadmin 도커 컨테이너를 사용하고 있기 때문입니다.데이터베이스에 정상적으로 접속할 수 있기 때문입니다.Laravel 컨테이너에 링크하는 것과 같은 방법으로 MariaDB 컨테이너와 phmyadmin 컨테이너를 링크합니다(--link mariadb:mysql).
데이터베이스에 접속할 수 없는 이유설치할 구성 또는 php 모듈이 부족합니까?
결국 매우 간단하다.환경변수로 mysql 호스트를 사용하면 MariaDB 도커 컨테이너의 IP 주소를 알 필요 없이 동작합니다..env 파일은 다음과 같습니다.
DB_CONNECTION=mysql
DB_HOST=mysql
DB_DATABASE=blog
DB_USERNAME=blog
DB_PASSWORD=123456
이제 MariaDB 엔진을 성공적으로 연결할 수 있습니다.
언급URL : https://stackoverflow.com/questions/30462384/laravel-5-application-cant-connect-mariadb-engine-in-docker-container
'itsource' 카테고리의 다른 글
MariaDB가 있는 데이터베이스 손상: 엔진에 테이블이 없습니다. (0) | 2022.09.13 |
---|---|
phpMyAdmin 오류:mbstring 확장자가 없습니다.PHP 구성을 확인하십시오. (0) | 2022.09.13 |
대량 삽입 중에 MariaDB jdbc 연결이 실패함 (0) | 2022.09.13 |
동일한 창과 탭에서 URL 열기 (0) | 2022.09.13 |
oracle Linux 7에 mariaDB를 설치하는 방법 (0) | 2022.09.13 |