집 >데이터 베이스 >MySQL 튜토리얼 >Node.js에서 MySQL Docker 컨테이너에 연결할 때 ECONNREFUSED 오류가 발생하는 이유는 무엇입니까?
Node.js가 MySQL Docker 컨테이너 ECONNREFUSED에 연결
Node.js를 사용하여 MySQL Docker 컨테이너에 연결하려고 하면 ECONNREFUSED 오류가 발생함 (예: ECONNREFUSED 127.0.0.1:3307)이 발생할 수 있습니다. 이 오류는 Node.js가 MySQL 컨테이너에 대한 연결을 설정할 수 없음을 나타냅니다.
Docker Compose 구성
제공된 docker-compose.yml 파일에 예시된 대로 , 포트 매핑 구성(예: 3307:3306)은 Docker가 호스트 포트를 컨테이너 포트에 매핑하는 방법만 지정한다는 점을 이해하는 것이 중요합니다. 컨테이너 자체는 여전히 기본 포트(예: MySQL의 경우 3306)를 수신합니다.
Node.js 연결 구성
ECONNREFUSED 오류를 해결하려면 노드가 .js 애플리케이션은 MySQL 컨테이너의 내부 포트에 연결하도록 구성됩니다. 제공된 예시에서는 호스트 속성을 'mysql'로, 포트 속성을 '3306'으로 설정해야 합니다.
const config = { host: 'mysql', database: 'mydb', port: '3306', user: 'mysql', password: '1234', connectionLimit: 10 };
Docker Compose의 명령
또한 docker-compose.yml 파일의 명령 속성은 대신 포트 3306에서 MySQL을 기다리도록 업데이트되어야 합니다. 3307.
command: ["./wait-for-it.sh", "mysql:3306"]
참고: Node.js에서 연결을 시도하기 전에 MySQL 컨테이너가 완전히 초기화되었는지 확인하기 위해 wait-for-it.sh 스크립트를 사용하는 것이 좋습니다. 이 스크립트는 https://github.com/vishnubob/wait-for-it에서 얻을 수 있습니다.
이 단계를 따르면 Node.js 애플리케이션과 MySQL 간의 연결을 설정할 수 있습니다. 도커 컨테이너.
위 내용은 Node.js에서 MySQL Docker 컨테이너에 연결할 때 ECONNREFUSED 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!