sql >> Databasteknik >  >> RDS >> Mysql

Node.js ansluter till MySQL Docker-behållare ECONNREFUSED

Detta:

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

Betyder att Docker kommer att mappa 3307 värdens port till 3306 containerns hamn. Så du kan komma åt från Sequel till localhost:3307 .

Det betyder dock inte att behållaren lyssnar på 3307; behållaren lyssnar faktiskt fortfarande på 3306 . När andra behållare försöker komma åt mysql DNS, det översätts till den interna behållarens IP, därför måste du ansluta till 3306 .

Så din nodkonfiguration bör se ut så här:

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

Och detta i din docker-compose.yml:

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



  1. Oracle Database Explorer:Gratis utbildning och ackreditering

  2. Dela en kolumn i flera rader

  3. Hur lagrar man en array i mysql?

  4. Trimma mer transaktionsloggfett