itsource

Laravel 5 응용 프로그램이 도커 컨테이너에 MariaDB 엔진을 연결할 수 없습니다.

mycopycode 2022. 9. 13. 22:13
반응형

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

반응형