
Порт подключения к MySQL – это конкретное сетевое значение, через которое клиентские приложения устанавливают соединение с сервером базы данных. По умолчанию используется порт 3306, однако на практике он часто изменяется: при размещении нескольких экземпляров сервера, в контейнерах, на виртуальных хостингах или из соображений безопасности. Ошибка в указании порта приводит к отказу соединения даже при корректных логине, пароле и адресе сервера.
Определение фактического порта требуется при настройке приложений, диагностике ошибок подключения, миграции базы данных или аудите серверной конфигурации. В зависимости от среды – Linux, Windows, Docker, shared-хостинг или облачный сервер – источник этой информации различается. Иногда порт указан в конфигурационных файлах, иногда его можно получить только через системные утилиты или SQL-запросы.
В статье рассматриваются практические способы определения порта MySQL в реальных условиях эксплуатации: от анализа конфигурации сервера до проверки активных сетевых соединений. Каждый подход применим к конкретному сценарию и позволяет получить точное значение порта без догадок и перебора настроек.
Проверка стандартного порта MySQL при первом подключении
При первом подключении к серверу MySQL целесообразно начать с проверки стандартного порта 3306. Именно это значение используется в большинстве дистрибутивов при установке без изменения параметров. Клиентские библиотеки, графические интерфейсы и консольные утилиты автоматически предполагают этот порт, если он не указан явно.
Для первичной проверки достаточно выполнить подключение без указания порта. Если соединение устанавливается, значит сервер действительно слушает стандартный порт. При ошибке соединения важно зафиксировать текст сообщения: отказ в подключении, тайм-аут или отсутствие маршрута указывают на разные причины, включая нестандартный порт.
В консольном клиенте проверка выполняется командой подключения к серверу по имени хоста или IP-адресу. Если MySQL развернут локально и использует стандартные настройки, дополнительная параметризация не требуется. Для удалённого сервера стандартный порт также используется по умолчанию, если провайдер не указал иное.
| Сценарий подключения | Поведение клиента |
| Порт не указан | Используется значение 3306 |
| Соединение успешно | Сервер работает на стандартном порту |
| Ошибка соединения | Требуется уточнение порта или проверка сети |
Если подключение к стандартному порту не удалось, дальнейшая диагностика должна включать проверку конфигурационных файлов, сетевых настроек и ограничений файрвола. Однако именно попытка подключения к порту 3306 позволяет быстро исключить самый распространённый и ожидаемый вариант без дополнительных инструментов.
Определение порта через конфигурационный файл my.cnf или my.ini

Конфигурационный файл сервера MySQL содержит явное указание порта, на котором процесс принимает входящие соединения. В Linux и Unix-подобных системах используется файл my.cnf, в Windows – my.ini. Если параметр порта был изменён при установке или позже, именно здесь зафиксировано актуальное значение.
Файл может располагаться в нескольких каталогах, поэтому поиск следует начинать с типовых путей. Приоритет загрузки конфигураций зависит от платформы и способа запуска сервера, что важно учитывать при анализе.
- /etc/my.cnf – системная конфигурация
- /etc/mysql/my.cnf – распространённый путь в Debian и Ubuntu
- /usr/local/etc/my.cnf – установка из исходников
- C:\ProgramData\MySQL\MySQL Server X.Y\my.ini – Windows
После открытия файла необходимо найти секцию [mysqld]. Именно в ней задаются параметры серверного процесса, включая сетевые настройки. Значение порта указывается директивой port.
- port=3306 – стандартное значение
- port=3307 и выше – признак альтернативной конфигурации
Если параметр port отсутствует, сервер использует значение по умолчанию. Наличие нескольких конфигурационных файлов требует проверки каждого из них, так как итоговые настройки формируются с учётом порядка загрузки. После изменения файла для подтверждения актуального порта требуется перезапуск службы MySQL.
Получение порта с помощью SQL-запроса к системным переменным
Если доступ к серверу MySQL уже установлен, самый точный способ узнать используемый порт – запросить его напрямую у запущенного сервера. Значение хранится в системных переменных и отражает текущую конфигурацию, с которой процесс был запущен, независимо от содержимого конфигурационных файлов.
Для получения порта используется обращение к глобальной переменной port. Запрос выполняется из любой SQL-сессии с базовыми правами доступа и не требует административных привилегий.
SHOW VARIABLES LIKE ‘port’;
В ответ сервер возвращает числовое значение порта, на котором он принимает TCP-соединения. Это значение является фактическим и актуальным, что особенно важно в средах с несколькими экземплярами MySQL или при запуске сервера с параметрами командной строки.
Альтернативный вариант – запрос через системное представление, которое часто используется в автоматизированных проверках и скриптах мониторинга.
SELECT @@port;
Метод применим при работе через консольный клиент, графические интерфейсы и API. Он позволяет быстро проверить порт после перезапуска сервера, обновления конфигурации или миграции без доступа к файловой системе и сетевым утилитам.
Просмотр порта при подключении через консольный клиент mysql

Консольный клиент mysql позволяет определить порт в момент подключения, если явно указать параметры соединения. При использовании ключа -P клиент передаёт номер порта серверу, что сразу фиксирует используемое значение и исключает догадки.
Для проверки стандартного сценария достаточно выполнить подключение без указания порта. В этом случае клиент автоматически использует 3306. Если соединение прошло успешно, это подтверждает работу сервера на стандартном порту. При ошибке подключения имеет смысл повторить команду с альтернативным портом.
После успешного входа в интерактивную сессию можно вывести сведения о текущем соединении. Команда \s (status) отображает параметры клиента и сервера, включая строку TCP/IP, где указан фактический порт соединения.
Метод удобен при работе по SSH, на минимальных системах без графических инструментов и в ситуациях, когда доступ к конфигурационным файлам ограничен, но консольный доступ к MySQL сохранён.
Поиск открытого порта MySQL с использованием netstat или ss

Когда доступ к MySQL отсутствует, определить порт можно на уровне операционной системы, проверив, какие сетевые порты прослушивает процесс сервера. Для этого используются утилиты netstat и ss, доступные в большинстве Linux-дистрибутивов и серверных сборок.
Современной альтернативой является ss, которая работает быстрее и не требует дополнительных пакетов. Команда ss -tulnp отображает активные сокеты и связанные с ними процессы. По строке с mysqld определяется локальный адрес и номер порта, на котором сервер принимает соединения.
Важно учитывать, что MySQL может быть привязан только к 127.0.0.1, что означает недоступность порта извне. В таком случае утилиты всё равно покажут активный порт, но подключение будет возможно только с локального хоста.
Метод подходит для диагностики на серверах с несколькими экземплярами MySQL, при запуске через systemd и в ситуациях, когда конфигурационные файлы недоступны или не отражают фактические параметры запуска.
Определение порта MySQL в панели управления хостингом

На виртуальном хостинге доступ к серверу MySQL обычно осуществляется через панель управления, где параметры подключения уже подготовлены провайдером. Порт указывается явно, так как на одном сервере могут обслуживаться сотни аккаунтов с разными настройками.
Информация о порте чаще всего размещается в разделе управления базами данных или в карточке конкретной базы. Поиск следует начинать со страницы, где отображаются данные для подключения из внешних приложений.
- раздел «Базы данных» или «MySQL»
- параметры удалённого доступа
- данные для подключения к phpMyAdmin
Если порт не отображается рядом с хостом, его значение указывается в расширенных настройках или справочном блоке панели. Многие провайдеры используют нестандартные порты, например 3307 или 3308, чтобы снизить сетевую нагрузку и изолировать клиентов.
Альтернативный способ – открыть встроенный интерфейс управления базами данных. Адрес подключения, используемый панелью, уже содержит корректный порт, который можно сопоставить с настройками приложения.
- перейти в интерфейс управления базой
- найти параметры сервера или подключения
- зафиксировать указанный номер порта
Если нужная информация отсутствует в интерфейсе, провайдер указывает порт в технической документации или в письме с данными доступа. В крайнем случае его можно уточнить через службу поддержки, указав домен и имя базы данных.
Проверка порта MySQL в Docker-контейнере и docker-compose
В Docker-среде порт MySQL определяется на двух уровнях: внутри контейнера и на хост-системе. Внутри контейнера сервер почти всегда использует стандартный порт 3306, независимо от того, какой внешний порт назначен для доступа извне.
Для проверки внутреннего порта достаточно просмотреть параметры запущенного контейнера. Команда docker exec с доступом к консоли контейнера позволяет выполнить SQL-запрос или проверить конфигурационный файл, где будет указано фактическое значение порта сервера.
Внешний порт задаётся при публикации контейнера. Его можно определить через описание контейнера командой docker ps, где отображается сопоставление портов в формате host_port->3306. Именно host_port используется для подключения к MySQL с хост-машины или из сети.
При использовании docker-compose порт указывается в файле конфигурации сервиса MySQL. В секции ports первое значение соответствует порту хоста, второе – порту контейнера. Отсутствие этой секции означает, что MySQL доступен только внутри Docker-сети.
Если подключение выполняется из другого контейнера в той же сети, используется внутренний порт и имя сервиса, а не внешний порт хоста. Для внешних клиентов всегда применяется опубликованный порт, заданный в настройках контейнера или compose-файле.
Такой подход позволяет точно определить, какой порт использовать в каждом сценарии: локальная разработка, взаимодействие между контейнерами или удалённый доступ к MySQL.
Определение порта MySQL на Windows через службы и параметры запуска
В Windows сервер MySQL обычно запускается как системная служба, и информация о порте содержится в параметрах её запуска. Проверка начинается с открытия оснастки Службы, где необходимо найти службу MySQL с указанием версии или пользовательского имени экземпляра.
В свойствах службы на вкладке Общие отображается путь к исполняемому файлу и аргументы запуска. Если сервер стартует с параметром —defaults-file, он указывает на используемый конфигурационный файл, в котором задан порт. Этот файл является приоритетным источником настроек для данного экземпляра.
В некоторых установках порт задаётся напрямую в командной строке запуска службы с помощью параметра —port. В таком случае значение порта видно сразу в строке запуска без обращения к конфигурационным файлам.
Дополнительная проверка выполняется через командную строку Windows с правами администратора. Использование команды sc qc с именем службы позволяет вывести конфигурацию и подтвердить параметры, с которыми запускается сервер MySQL.
Если на системе установлено несколько экземпляров MySQL, каждый из них будет зарегистрирован как отдельная служба с собственными параметрами запуска и, как правило, с разным портом. Анализ свойств каждой службы позволяет точно сопоставить порт с нужным экземпляром базы данных.
Метод подходит для серверов и рабочих станций, где отсутствует доступ к SQL-интерфейсу, но есть возможность управлять службами и просматривать системные настройки запуска.
Вопрос-ответ:
Почему приложение не подключается к MySQL, если логин и пароль указаны верно?
Частая причина — неверный порт подключения. Приложение по умолчанию пытается подключиться к 3306, тогда как сервер может работать на другом порту. Такое встречается при размещении нескольких экземпляров MySQL на одном сервере, в Docker-контейнерах или на виртуальном хостинге. Проверка фактического порта через SQL-запрос, конфигурационный файл или параметры контейнера обычно сразу выявляет проблему.
Можно ли узнать порт MySQL, если нет доступа к конфигурационным файлам?
Да, если есть доступ к самой базе данных. В SQL-сессии достаточно выполнить запрос SHOW VARIABLES LIKE ‘port’ или SELECT @@port. Сервер вернёт текущее значение порта, с которым он был запущен. Этот способ показывает реальное состояние, а не предполагаемую настройку.
Чем отличается порт MySQL внутри Docker-контейнера от порта для подключения с хоста?
Внутри контейнера MySQL почти всегда слушает порт 3306. Для доступа с хоста используется внешний порт, который проброшен при запуске контейнера или указан в docker-compose. Именно внешний порт прописывается в настройках приложений, работающих вне Docker-сети.
Как понять, какой порт использует нужный экземпляр MySQL на Windows, если их несколько?
Каждый экземпляр MySQL в Windows зарегистрирован как отдельная служба. В свойствах службы видно, с какими параметрами запускается сервер. Если указан файл конфигурации или параметр —port, по ним можно определить порт конкретного экземпляра и сопоставить его с нужной базой данных.
