Yandex Metrika
sanches.free

Удалённое подключение к MySQL с другой машины

Типовая ошибка при коннекте снаружи

Команда с клиентской машины (подставьте пользователя, хост и пароль):

mysql -u User -h 192.168.0.17 -p

Если сервер не принимает TCP-соединение, часто видно сообщение вида ERROR 2003 (HY000): Can't connect to MySQL server on '…'. Для связки «фронт отдельно, MySQL на ВМ с Битриксом» это первый симптом того, что либо демон не слушает внешний интерфейс, либо дорогу перекрывает файрвол или DNAT.

Жив ли mysqld

На сервере БД убедитесь, что процесс запущен:

ps -ef | grep mysqld

В выводе ожидается путь к бинарнику и аргументы (datadir, socket, port). Если служба остановлена — поднимите её штатным для ОС способом (systemctl start mysqld или service mysqld start) и при необходимости включите автозапуск (systemctl enable mysqld).

Слушает ли порт и где именно

Проверьте, на каком адресе открыт порт (нужны права на просмотр процессов):

sudo netstat -lnp | grep mysql

или современный эквивалент ss -lntp. Если для TCP видно только 127.0.0.1:3306, внешние клиенты до сервера не доберутся — даже при работающем демоне. Нестандартный порт укажите у клиента ключом -P <порт>.

bind_address и конфиг

Распространённый фикс — правка bind_address в [mysqld]. Закомментируйте привязку только к localhost, если политика безопасности позволяет слушать все интерфейсы:

# bind_address = 127.0.0.1

В новых версиях вместо этого встречаются значения вроде *, 0.0.0.0 или список IP — ориентируйтесь на справку вашей ветки. После изменения перезапустите mysqld.

Сетевой доступ к SQL — чувствительная поверхность: по возможности ограничивайте его VPN, security group или точечным правилом «только с подсети фронтовых серверов», а не «весь интернет».

Файрвол и проверка с клиента

На стороне сервера проверьте правила (iptables, nft, облачный security group). С машины приложения можно выполнить сетевой проброс порта:

nmap -p 3306 192.168.0.17

Ожидаемое краткое резюме для открытого порта — строка вроде 3306/tcp open mysql. Если порт фильтруется, сначала исправьте сетевой периметр, а не учётные записи MySQL.

Учётные записи MySQL

Когда TCP доходит до сервера, убедитесь, что пользователь имеет право подключаться с нужного хоста ('user'@'%' или конкретная подсеть, не только localhost). Это уже отдельная тема GRANT — но ERROR 2003 обычно означает сетевой обрыв до аутентификации.

Итог

Для администрирования стека с 1С‑Битрикс удалённый доступ к MySQL — часть миграций и отладки. Последовательность «процесс → адрес прослушивания → файрвол → учётка» сокращает время поиска обрыва и уменьшает риск открыть базу лишним миру.

Не хотите копаться сами?

Починю за 1-3 дня. Без предоплаты — оплата по результату.

15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии