Как изменить порт подключения контейнера Docker Mysql?

0

Я работаю с узлом, docker, mysql и sequelize, и я пытаюсь подключить sequelize к контейнеру mysql, работающему на docker. Он будет подключаться только через порт 3306, несмотря на то, что я изменил "порты" на 3308-3308. Когда я просматриваю запущенные контейнеры, я получаю следующее для базы данных mysql:

ticketgo_database_1      docker-entrypoint.sh mysqld    Up      3306/tcp,                   
                                                                0.0.0.0:3308->3308/tcp

Это объясняет, почему он может подключаться только к порту 3306, но мне нужно изменить порт подключения с 3306, так как этот порт занят на моем компьютере. Как я могу это сделать?

Контейнер Mysql:

  database:
    image: mysql
    environment:
      MYSQL_DATABASE: "ticketgo"
      MYSQL_ROOT_PASSWORD: "pass"
    volumes:
     - "./sql:/docker-entrypoint-initdb.d"
    ports:
    - "3308:3308" 
Теги:
database
docker
express

2 ответа

0

Я думаю, что ваше приложение управляется и докерером. Нет необходимости изменять, какой порт MySQL прослушивает в своем контейнере. Оставьте squelize соединение с databade: 3306 и либо не укажете сопоставление портов в MySQL docker compose config, либо укажите: 3308:3306 что означает, что порт 3308 на хосте будет сопоставлен с контейнерным портом 3306. Это не означает, что MySQL будет слушать 3308. Он будет продолжать прослушивание в своем контейнере 3306, и новый порт 3308 на хосте будет сопоставлен с ним.

Указывайте только сопоставление портов, если вам нужно получить доступ к MySQL из внешних сервисов, связанных с док-станцией (например, из другого приложения на вашем хосте или в графическом интерфейсе MySQL)

  • 0
    К сожалению, переназначение порта контейнера на 3308 не позволило установить соединение через этот порт. Он по-прежнему может подключаться только через порт 3306. Причина, по которой я хочу подключиться через другой порт, заключается в том, что при попытке подключения через 3306 появляется сообщение об ошибке, в котором говорится, что «порт 3306 уже используется». Странно то, что я не использую порт 3306 ни для чего другого ....
  • 0
    Может ли быть так, что у меня есть другой сеанс Mysql, запущенный где-то еще на моем компьютере? Это только позволяет подключиться через 3306? Как бы я пошел, проверив это?
0

В разделе "Порт" измените второй порт на любой, который вы хотите "3308: 3309";

Или вы можете сделать это по ней -p 3309: 3308

  • 0
    Как вы видите в файле docker.yml, я изменил порты на 3308: 3308, но когда я пытаюсь подключить sequelize к базе данных mysql, он будет подключаться только через 3306, что я хочу изменить
  • 0
    @ Оскар, ты не должен менять их обоих! В docker.yml просто измените второстепенную часть порта. Почему? потому что это соединяет порт Host (Ваш ПК или Сервер) с портом Gust (Docker Container). Итак: -p 3308: 3306

Ещё вопросы

Сообщество Overcoder
Наверх
Меню