Удалённое подключение к MySQL: доступ к базе данных извне

Печать
  • 0

Коротко: сайт на хостинге TopHost работает со своей базой через localhost, и ничего дополнительно настраивать не нужно. Удалённый доступ требуется только тогда, когда с базой напрямую должна работать программа на другом компьютере или сервере. В целях безопасности файрвол сервера по умолчанию не принимает внешние подключения к MySQL, поэтому доступ открывается для конкретного IP-адреса: Вы добавляете адрес в cPanel, а наша техподдержка разрешает его в файрволе.

Нужен ли Вам удалённый доступ?

  • Чтобы просматривать, править, выгружать или загружать данные, достаточно phpMyAdmin в cPanel: он открывается в любом браузере. Подробнее в статье phpMyAdmin в cPanel: как выгрузить и загрузить базу данных.
  • Удалённый доступ пригодится для программ на компьютере (MySQL Workbench, HeidiSQL, DBeaver), для бухгалтерских и отчётных систем, которые читают данные, и для приложений, работающих на другом сервере.
  • Каждый разрешённый адрес открывает путь к Вашим данным. Разрешайте только постоянные адреса, которыми Вы управляете, и удаляйте их, когда работа закончена.

Шаг 1. Узнайте публичный IP-адрес, с которого будете подключаться

Понадобится публичный IPv4-адрес компьютера или сервера, который будет устанавливать соединение. На компьютере его легко узнать, набрав в любом поисковике «what is my IP» или «мой IP». Учтите, что домашний и мобильный интернет нередко время от времени получает новый адрес. Тогда доступ перестаёт работать, и новый адрес нужно разрешать заново. Для офиса удобнее заказать у провайдера статический IP.

Шаг 2. Добавьте адрес в cPanel

  1. Войдите в cPanel. Из личного кабинета откройте Мои услуги и выберите тариф хостинга.
  2. В разделе Databases откройте Remote Database Access (в старых версиях cPanel пункт называется Remote MySQL).
  3. В блоке Add Access Host впишите IP-адрес в поле Host, добавьте короткий комментарий, например «офис», и нажмите Add Host.

Не указывайте в качестве хоста один символ %: это шаблон, который пропустит любой адрес в интернете.

Шаг 3. Попросите открыть файрвол для этого адреса

Создайте тикет и укажите в нём:

  • публичный IP-адрес из шага 1;
  • домен или имя пользователя cPanel аккаунта хостинга;
  • полное имя базы данных и её пользователя, с префиксом (например, cpuser_shop);
  • что именно будет подключаться (программа на Вашем компьютере, Ваш сервер, приложение партнёра).

Пароль от базы в тикете писать не нужно. Мы ответим, как только адрес будет разрешён.

Шаг 4. Введите параметры подключения в программе

ПараметрЗначение
HostИмя домена, если он направлен на хостинг TopHost, или IP-адрес сервера, который cPanel показывает в блоке General Information (Shared IP Address)
Port3306
UserПолное имя пользователя базы, с префиксом
PasswordПароль этого пользователя
DatabaseПолное имя базы данных, с префиксом

Если домен работает через прокси Cloudflare (оранжевое облако), указывайте в качестве хоста IP-адрес сервера. Прокси пропускает только веб-трафик, подключения к MySQL через него не проходят.

Если подключиться не удаётся

  • «Access denied for user»: неверное имя пользователя или пароль, пользователь не добавлен к базе (см. статью о создании базы и пользователя) или IP-адреса нет в Remote Database Access.
  • Тайм-аут или «Can't connect to MySQL server»: файрвол ещё не открыт, Ваш IP сменился или исходящий трафик на порт 3306 блокирует Ваша собственная сеть (так часто бывает в офисных сетях и общественном Wi-Fi).
  • Сначала работало, потом перестало: несколько неудачных входов подряд могут привести к блокировке IP файрволом сервера. Причины описаны в статье почему файрвол сервера блокирует IP-адрес.

Если проблема осталась, напишите в тот же тикет точный текст ошибки и время последней попытки.

Более безопасный вариант: SSH-туннель

Если для Вашего аккаунта включён SSH (см. подключение к серверу по SSH), MySQL Workbench, HeidiSQL, DBeaver и похожие программы умеют подключаться через SSH-туннель. В этом случае база доступна так, будто Вы работаете на самом сервере, хостом MySQL остаётся localhost, а порт 3306 открывать в интернет не требуется.

Обратная ситуация: сайт подключается к внешней базе

Если скрипту на хостинге TopHost нужно обращаться к базе данных на другом сервере, файрвол может фильтровать и такое соединение. Создайте тикет, указав адрес и порт удалённого сервера, и мы всё проверим.

Полезные статьи

Помог ли вам данный ответ?

Нужна помощь? Позвоните нам +373 795-800-80