Mysql
 sql >> база данни >  >> RDS >> Mysql

Node.js се свързва с MySQL Docker контейнер ECONNREFUSED

Това:

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

Означава, че Docker ще съпостави 3307 порт на хоста към 3306 порт на контейнера. Така че можете да получите достъп от Sequel до localhost:3307 .

Това обаче не означава, че контейнерът слуша 3307; контейнерът всъщност все още слуша 3306 . Когато други контейнери се опитват да осъществят достъп до mysql DNS, той се превежда във вътрешния IP на контейнера, следователно трябва да се свържете с 3306 .

Така че конфигурацията на вашия възел трябва да изглежда така:

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

И това във вашия docker-compose.yml:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създаване на процедура в mySql с параметри

  2. Таблица само за четене в mysql

  3. едновременен достъп до базата данни MySQL с помощта на съхранена процедура

  4. Как да персонализирате вашите MySQL и MariaDB архиви с ClusterControl

  5. Създаване на система с кодове за отстъпка (MySQL/php)