Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Node.js łączy się z kontenerem MySQL Docker ECONNREFUSED

To:

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

Oznacza, że ​​Docker zmapuje 3307 port hosta na 3306 port kontenera. Możesz więc uzyskać dostęp z Sequel do localhost:3307 .

Nie oznacza to jednak, że kontener nasłuchuje 3307; kontener faktycznie wciąż nasłuchuje 3306 . Gdy inne kontenery próbują uzyskać dostęp do mysql DNS, zostaje przetłumaczony na wewnętrzny adres IP kontenera, dlatego musisz połączyć się z 3306 .

Tak więc konfiguracja węzła powinna wyglądać tak:

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

A to w twoim 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. Laravel 5 Eloquent:Jak uzyskać surowy sql, który jest wykonywany? (z powiązanymi danymi)

  2. Migracje baz danych na produkcję django

  3. MySQL, wiele wierszy do oddzielnych pól

  4. jak zalogować się do mysql i odpytać bazę danych z terminala linux

  5. django.core.exceptions.ImproperlyConfigured:Błąd podczas ładowania modułu MySQLdb:Brak modułu o nazwie MySQLdb