MySQL и MariaDB LinuxWindowsMySQL Server

MySQL: MySQL не может запуститься из-за занятого порта 3306

  • Обновлено
  • Чтение ≈ 2 минуты
  • Нужны права администратора

Краткий ответ

MySQL может не стартовать с сообщением Address already in use, если порт 3306 занял другой экземпляр MySQL/MariaDB или иная служба. Прежде чем менять порт, определите процесс и проверьте, к какой базе подключаются приложения.

В этой статье
  1. Как проявляется проблема и где искать причину
  2. Пошаговая диагностика и устранение
  3. Как проверить результат
  4. Если исправление не помогло

#Как проявляется проблема и где искать причину

MySQL может не стартовать с сообщением Address already in use, если порт 3306 занял другой экземпляр MySQL/MariaDB или иная служба. Прежде чем менять порт, определите процесс и проверьте, к какой базе подключаются приложения.

Возможная причинаКак узнатьЧто делать
Второй экземпляр базыНа сервере работает другой mysqld или контейнерПорт занят mysql/mariadbd или docker-proxyОпределить рабочий экземпляр и владельца
Ошибочный параметр запускаСлужба использует порт или bind-address не по плануФайл настроек отличается от развёртыванияИсправить конфигурацию по плану

#Пошаговая диагностика и устранение

  1. 1. Найдите подтверждение конфликта портаНа Linux откройте журнал конкретной службы через systemctl status, а также журнал ошибок MySQL. Ищите Bind on TCP/IP port, Address already in use. Если написано про datadir, проблему нужно решать отдельно.
    Linux · Терминал (Bash)Команда
    Пример для Debian/Ubuntu; служба может называться mysqld/mariadb в вашей системе.
    systemctl status mysql --no-pager
  1. 2. Определите слушателя 3306На Linux выполните команду с sudo только для просмотра программы, занимающей порт. Если команды ss нет, используйте штатное средство диагностики вашей ОС.
  2. sudo нужен для имени чужого процесса; выводит LISTEN и PID, ничего не закрывает
    Linux · Терминал (Bash)КомандаНужен sudo
    sudo нужен для имени чужого процесса; выводит LISTEN и PID, ничего не закрывает.
    sudo ss -ltnp "sport = :3306"
  1. 3. Сверьте экземпляр и каталог данныхПо PID из вывода изучите описание службы и путь запуска в systemd. Если обнаружен второй MySQL, сравните datadir, параметры порта и назначение базы. Не предполагайте, что второй процесс лишний.
  2. Linux с systemd и grep, чтение списка; имена зависят от дистрибутива
    Linux · Терминал (Bash)Команда
    Linux с systemd и grep, чтение списка; имена зависят от дистрибутива.
    systemctl list-units --type=service --all | grep -Ei "mysql|maria"
  1. 4. Если порт занимает Docker, проверьте публикациюПосмотрите Docker-порты, найдите контейнер, публикующий 3306 на хосте. Изнутри Docker-сети базе может не требоваться публикация вообще, но изменение доступности надо согласовать.
    Linux · Терминал (Bash)Команда
    Если Docker не используется, пропустите шаг.
    docker ps --format "table {{.Names}} {{.Ports}}"
  1. 5. Выберите вариант без конфликтаЕсли другой экземпляр нужен, назначьте тестовому серверу отдельный порт через проверенный файл конфигурации и обновите host/port у его клиентов. Если экземпляр дублирован ошибочно, выполните плановый останов только после проверки собственника службы.
  1. 6. Проверьте конфигурацию до перезапускаУбедитесь, что изменение не затронуло рабочий datadir и сервис, что новая пара адрес/порт свободна и доступ ограничен необходимым интерфейсом. После тестового запуска повторите ss, затем подключитесь mysql-клиентом именно к назначенному порту.
  1. 7. Верните рабочее подключение приложенияЗапустите тестовую операцию чтения и сравните @@hostname, @@port, @@version с ожидаемым экземпляром. Если тест не проходит, верните прежний файл конфигурации и изучите журнал запуска; не запускайте две службы с одним каталогом данных.

#Как проверить результат

У сервера один ожидаемый слушатель на согласованном порту, MySQL запускается, клиенты подключаются именно к нужному экземпляру.

#Если исправление не помогло

Если оба MySQL пытаются использовать один datadir, это отдельный опасный конфликт: немедленно остановите эксперименты и проверьте целостность данных перед любым запуском.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.