sql >> Databáze >  >> RDS >> Mysql

Node.js se připojuje ke kontejneru MySQL Docker ECONNREFUSED

Toto:

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

Znamená to, že Docker namapuje 3307 port hostitele na 3306 přístav kontejneru. Takže můžete přistupovat z Sequel na localhost:3307 .

Neznamená to však, že kontejner poslouchá 3307; kontejner ve skutečnosti stále poslouchá 3306 . Když se ostatní kontejnery pokusí o přístup k mysql DNS se přeloží na IP interního kontejneru, proto se musíte připojit k 3306 .

Konfigurace vašeho uzlu by tedy měla vypadat takto:

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

A toto ve vašem docker-compose.yml:

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



  1. Mysql, přetvoř data z dlouhých / vysokých na široký

  2. Oracle Partition By Keyword

  3. count(*) a count(název_sloupce), jaký je rozdíl?

  4. Hlášení využití možností databáze/balíčků