Да, во многих случаях это возможно, но важно разделять две разные ситуации: сайт на хостинге подключается к базе на другом сервере, или внешний сервер подключается к базе, созданной в вашем хостинг-аккаунте.
Вариант 1: сайт использует базу на другом сервере
PHP-сайт на нашем хостинге обычно может подключаться к внешнему MySQL/MariaDB серверу, если внешний сервер разрешает такие подключения.
В конфигурации сайта нужно указать внешний хост базы данных вместо localhost. Например, в WordPress это настраивается в файле wp-config.php.
define('DB_HOST', 'mysql.example.com');
Внешний сервер базы данных должен разрешать подключения с IP-адреса вашего хостингового сервера. Если на внешнем сервере закрыт порт 3306 или разрешены только локальные подключения, сайт не сможет подключиться.
Вариант 2: внешний сервер подключается к базе на вашем хостинге
В DirectAdmin есть удаленный доступ к MySQL через Access Hosts. Это значит, что можно разрешить конкретному внешнему IP-адресу или хосту подключаться к базе данных в вашем хостинг-аккаунте.
- Откройте DirectAdmin.
- Перейдите в Account Manager → MySQL Management.
- Выберите нужную базу данных.
- Найдите раздел Access Hosts.
- Добавьте IP-адрес внешнего сервера, которому нужно разрешить подключение к этой базе.
После этого во внешнем приложении используйте данные подключения: хост или IP сервера базы, имя базы, пользователя базы и пароль.
Чего лучше не делать
- Не добавляйте
%в Access Hosts, если точно не понимаете риск. Такой вариант разрешает подключение с любого IP-адреса. - Не используйте пароль от аккаунта DirectAdmin как пароль базы данных.
- Не открывайте удаленный доступ для приложений, которые могут работать через локальную базу или API.
Безопасность и скорость
Для большинства сайтов самый безопасный и быстрый вариант - локальная база на том же хостинговом сервере, где в настройках указан localhost. Внешняя база добавляет сетевую задержку и зависит от доступности другого сервера.
Если удаленный доступ действительно нужен, разрешайте только фиксированные IP-адреса, используйте сложный пароль базы и удаляйте лишние Access Hosts, когда они больше не нужны.
Частые ошибки подключения
- Access denied - неверный пользователь/пароль или пользователю базы не разрешено подключаться с этого хоста.
- Can't connect to MySQL server - сервер, firewall или порт
3306недоступны. - Unknown MySQL server host - неверно указан хост базы данных.
- Connection timeout - подключение блокируется firewall-правилами или удаленный сервер недоступен.
Что отправить в поддержку
Если нужна помощь, укажите имя базы, IP-адрес, который нужно разрешить, где размещено приложение, и точный текст ошибки. Пароли в открытый тикет лучше не отправлять, если поддержка отдельно не попросила безопасный способ передачи.
