Удалённое подключение к MySQL: доступ к базе данных извне
ПечатьКоротко: сайт на хостинге TopHost работает со своей базой через localhost, и ничего дополнительно настраивать не нужно. Удалённый доступ требуется только тогда, когда с базой напрямую должна работать программа на другом компьютере или сервере. В целях безопасности файрвол сервера по умолчанию не принимает внешние подключения к MySQL, поэтому доступ открывается для конкретного IP-адреса: Вы добавляете адрес в cPanel, а наша техподдержка разрешает его в файрволе.
Нужен ли Вам удалённый доступ?
- Чтобы просматривать, править, выгружать или загружать данные, достаточно phpMyAdmin в cPanel: он открывается в любом браузере. Подробнее в статье phpMyAdmin в cPanel: как выгрузить и загрузить базу данных.
- Удалённый доступ пригодится для программ на компьютере (MySQL Workbench, HeidiSQL, DBeaver), для бухгалтерских и отчётных систем, которые читают данные, и для приложений, работающих на другом сервере.
- Каждый разрешённый адрес открывает путь к Вашим данным. Разрешайте только постоянные адреса, которыми Вы управляете, и удаляйте их, когда работа закончена.
Шаг 1. Узнайте публичный IP-адрес, с которого будете подключаться
Понадобится публичный IPv4-адрес компьютера или сервера, который будет устанавливать соединение. На компьютере его легко узнать, набрав в любом поисковике «what is my IP» или «мой IP». Учтите, что домашний и мобильный интернет нередко время от времени получает новый адрес. Тогда доступ перестаёт работать, и новый адрес нужно разрешать заново. Для офиса удобнее заказать у провайдера статический IP.
Шаг 2. Добавьте адрес в cPanel
- Войдите в cPanel. Из личного кабинета откройте Мои услуги и выберите тариф хостинга.
- В разделе Databases откройте Remote Database Access (в старых версиях cPanel пункт называется Remote MySQL).
- В блоке Add Access Host впишите IP-адрес в поле Host, добавьте короткий комментарий, например «офис», и нажмите Add Host.
Не указывайте в качестве хоста один символ %: это шаблон, который пропустит любой адрес в интернете.
Шаг 3. Попросите открыть файрвол для этого адреса
Создайте тикет и укажите в нём:
- публичный IP-адрес из шага 1;
- домен или имя пользователя cPanel аккаунта хостинга;
- полное имя базы данных и её пользователя, с префиксом (например,
cpuser_shop); - что именно будет подключаться (программа на Вашем компьютере, Ваш сервер, приложение партнёра).
Пароль от базы в тикете писать не нужно. Мы ответим, как только адрес будет разрешён.
Шаг 4. Введите параметры подключения в программе
| Параметр | Значение |
|---|---|
| Host | Имя домена, если он направлен на хостинг TopHost, или IP-адрес сервера, который cPanel показывает в блоке General Information (Shared IP Address) |
| Port | 3306 |
| 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 нужно обращаться к базе данных на другом сервере, файрвол может фильтровать и такое соединение. Создайте тикет, указав адрес и порт удалённого сервера, и мы всё проверим.