sql >> Database teknologi >  >> RDS >> Mysql

Node.js opretter forbindelse til MySQL Docker-beholder ECONNREFUSED

Dette:

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

Betyder, at Docker vil kortlægge 3307 port for værten til 3306 containerens havn. Så du kan få adgang fra Sequel til localhost:3307 .

Det betyder dog ikke, at containeren lytter til 3307; containeren lytter faktisk stadig til 3306 . Når andre containere forsøger at få adgang til mysql DNS, det bliver oversat til den interne container-IP, derfor skal du oprette forbindelse til 3306 .

Så din node-konfiguration skulle se sådan ud:

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

Og dette i din docker-compose.yml:

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



  1. SQL Server - Forespørgsel kortslutning?

  2. Har brug for Oracle SQL for at opdele dato/tidsinterval efter dag

  3. Konverter tidsstempeldatatype til unix-tidsstempel Oracle

  4. VÆLG Fra MySQL-visning med HAVING-klausul returnerer et tomt resultatsæt