Как получить доступ к базе данных SQL в Bitrix версии 14.5?

Здравствуйте. Имея доступ к панели управления сайта на Битрикс и к панели управления хостинга, как можно определить реальный IP-адрес и порт SQL-сервера Битрикса? В админке Битрикса доступно только текстовое поле для выполнения запросов. В файле .settings указан логин и пароль базы, но хост прописан как локалхост. Запросы для получения IP-адреса сервера, например: <br/> <blockquote> Select SUBSTRING_INDEX(host,':',1) as 'ip' <br/>
  • 18 марта 2026 г. 16:01
Ответы на вопрос 2
Коротко — «localhost» в настройках Битрикс обычно означает, что MySQL работает на той же виртуальной машине и/или подключается через UNIX-сокет. Реального внешнего IP там может и не быть (либо это 127.0.0.1, либо внутренний адрес кластера базы), а порт по умолчанию — 3306. Но можно уточнить это изнутри сервера/СУБД. Что можно сделать у вас, имея доступ в админку Битрикс и к панели хостинга:

1) Попробовать выполнить SQL‑запросы из админки Битрикс
   - SELECT @@hostname AS hostname, @@port AS port, @@socket AS socket;
   - SHOW VARIABLES LIKE 'port';
   - SHOW VARIABLES LIKE 'hostname';
   - SHOW VARIABLES LIKE 'socket';
   - SHOW VARIABLES LIKE 'bind_address';
   Эти запросы покажут имя хоста, порт и путь к сокету (если подключение через сокет). Если в hostname вернётся системное имя — его можно разрешить (ping/nslookup) в IP.

2) Если вывод показывает socket (например /var/run/mysqld/mysqld.sock)
   - Это означает подключение через UNIX‑сокет; внешнего IP может не быть — MySQL слушает локально. В этом случае внешний доступ по IP/порту, как правило, недоступен без настроек хоста.

3) Если SHOW VARIABLES возвращает bind_address или hostname, разрешите его в IP
   - Из панели управления хостинга (или с вашей машины) выполните ping/nslookup на это имя, чтобы получить IP.
   - Порт чаще всего 3306, но можно уточнить через @@port или SHOW VARIABLES.

4) Использовать phpMyAdmin (если он доступен)
   - На стартовой странице phpMyAdmin обычно отображается «Server: hostname:port». Там сразу видно хост/порт и тип подключения.

5) Если у вас есть SSH (shell) доступ к серверу
   - Просмотрите конфигурацию MySQL: /etc/my.cnf или /etc/mysql/my.cnf (параметр bind-address).
   - Команда netstat покажет, на каких интерфейсах слушает mysqld:
     - netstat -ltnp | grep mysqld  (или ss -ltnp | grep mysqld)
   - Если bind-address = 127.0.0.1 или сокет — база локальная.

6) Если вам нужно подключиться извне
   - На shared‑хостинге обычно требуется запросить у провайдера «удалённый доступ к базе» — они дадут хост/порт или добавят ваш IP в белый список.
   - Как обходной путь (и безопасный) — настройте SSH‑туннель:
     - ssh -L 3307:127.0.0.1:3306 user@yourhost
     - Тогда локально подключаетесь к 127.0.0.1:3307 и трафик идёт на удалённый MySQL.
   - Не пытайтесь просто подставить 127.0.0.1 на своей машине — это будет localhost вашей машины, а не сервера.

7) Если запросы в админке Битрикс ограничены или запрещены
   - В админке есть модуль «Управление базой» (или интерфейс SQL) — обычно он позволяет выполнять SHOW/SELECT. Если ограничения есть, используйте phpMyAdmin или панель хостинга либо SSH.

Резюме и рекомендации
- Запустите из админки или phpMyAdmin: SELECT @@hostname, @@port, @@socket; и SHOW VARIABLES LIKE 'bind_address';
- Если видите socket — база локальная, внешний IP, скорее всего, отсутствует или закрыт.
- Для внешних подключений запрашивайте у хостера данные или настройте SSH‑туннель; не открывайте базу публично без защитных мер.

Если хотите, могу: 1) дать точный SQL‑запросы для вставки в вашу админку Битрикс; 2) подсказать команды для SSH/панели хостинга (укажите, есть ли у вас SSH и phpMyAdmin).
Localhost в .settings значит что MySQL подключается локально, на том же сервере. На обычном шареде порт 3306 снаружи обычно закрыт, так что по IP подключиться скорее всего не выйдет. Поищи в панели хостинга phpMyAdmin или опцию remote MySQL — если её нет, спроси у саппорта.
Похожие вопросы