sql >> Database >  >> RDS >> Mysql

Node.js maakt verbinding met MySQL Docker-container ECONNREFUSED

Dit:

mysql:
    image: mysql:5.7
    environment:
    ...
    ports:
      - "3307:3306"

Betekent dat Docker de 3307 . zal toewijzen poort van de host naar de 3306 haven van de container. Dus je hebt toegang van Sequel tot localhost:3307 .

Dit betekent echter niet dat de container luistert naar 3307; de container luistert in feite nog steeds naar 3306 . Wanneer andere containers toegang proberen te krijgen tot de mysql DNS, het wordt vertaald naar het interne container-IP, daarom moet u verbinding maken met 3306 .

Dus je node-configuratie zou er als volgt uit moeten zien:

const config = {
    host: 'mysql',
    database: 'mydb',
    port: '3306',
    user: 'mysql',
    password: '1234',
    connectionLimit: 10
}

En dit in je docker-compose.yml:

command: ["./wait-for-it.sh", "mysql:3306"]



  1. Oracle SQL Query-logboekregistratie

  2. HikariCP Postgresql-stuurprogramma beweert JDBC-URL niet te accepteren

  3. Django onderscheidt zich per zoekopdracht op twee velden

  4. Voorkomen dat wijzigingen worden opgeslagen waarvoor de tabel opnieuw moet worden gemaakt, negatieve effecten