MySQL Docker 컨테이너 ECONNREFUSED에 대한 Node.js 연결
문제:
MySQL 및 Node.js 컨테이너가 연결된 Docker compose 파일을 사용하는 경우 포트 3307을 사용하여 MySQL 컨테이너에 연결을 시도하는 동안 Node.js 앱에 ECONNREFUSED 오류가 발생합니다.
분석:
Docker compose 파일은 호스트의 3307 포트를 컨테이너의 3306에 매핑합니다. 그러나 MySQL 컨테이너는 내부적으로 3306을 수신하고 있습니다. 이로 인해 Node.js가 컨테이너가 수신 대기 중인 포트가 아닌 호스트의 포트 3307에 연결을 시도하는 문제가 발생합니다.
해결책:
문제를 해결하려면 다음과 같이 MySQL 구성 및 Docker Compose 파일을 조정하십시오.
수정된 MySQL 구성:
const config = { host: 'mysql', // Use the MySQL container DNS name database: 'mydb', port: '3306', // Match the port the MySQL container is listening on user: 'mysql', password: '1234', connectionLimit: 10 }
수정된 Docker Compose 파일:
command: ["/bin/bash", "./wait-for-it.sh", "mysql:3306"] // Match the port MySQL is listening on
이러한 수정을 통해 이제 Node.js 앱이 올바른 포트를 사용하여 MySQL 컨테이너에 연결되며 ECONNREFUSED 오류가 해결됩니다.
위 내용은 내 Node.js 앱이 MySQL Docker 컨테이너에 연결할 때 ECONNREFUSED 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!