10 января 2023 Время чтения: 4 минуты

Удаленное подключение к базе данных BILLmanager

Юрий Галеев

Юрий Галеев

Менеджер по работе с клиентами

ISPSystem

Подключаемся напрямую к БД с помощью внешнего клиента

Эта статья будет полезна как начинающим администраторам, так и опытным инженерам баз данных. В ней мы расскажем, как подключиться к БД с помощью внешнего графического клиента и получить любую информацию, которую она содержит.

Зачем администратору внешний клиент для подключения к БД

В BILLmanager используется нативная версия базы данных для операционной системы, так как платформа устанавливается на «чистую» ОС: без сторонних репозиториев и дополнительных сервисов. Например, для CentOS 7 это 5.5.68-MariaDB, а для Ubuntu 20 — 8.0.28-MariaDB. Автоматическое обновление до актуальной версии не поддерживается, поэтому рекомендуем воспользоваться документацией по переходу на MariaDB 10.3.

Нативные версии баз данных ОС, поддерживаемых BILLmanager, не имеют встроенного интерфейса управления. Чтобы получить запрашиваемую информацию или сформировать дополнительные отчеты, можно использовать прямое подключение к БД.

HeidiSQL

Оно позволяет создать любой запрос и извлечь нужные данные, а также проводить все возможные действия с базой данных — начиная от администрирования и заканчивая оптимизацией.

Однако вносить изменения напрямую в базу небезопасно. Мы настоятельно не рекомендуем такие операции, так как они могут привести к полной неработоспособности BILLmanager. Разобраться в структуре базы данных нашей платформы и не допустить критических ошибок поможет документация.

Чтобы сформировать корректное и полное представление о данных, увидеть все индексы, форматы, взаимосвязи таблиц, а также посмотреть план выполнения запросов, не обойтись без внешнего клиента с графическим интерфейсом. Он позволяет визуализировать информацию и выводить на экран любые наборы специфических данных.

Среди популярных клиентов БД можно выделить:

  • dbForge Studio,
  • DBeaver,
  • Navicat,
  • HeidiSQL.

Мы расскажем, как установить и подключить к BILLmanager бесплатный и достаточно мощный SQL-клиент HeidiSQL.

HeidiSQL

Установка HeidiSQL

Установка клиента под Windows интуитивно понятная, поэтому мы уделим внимание более сложному процессу установки и настройки под ОС Linux.

Чтобы установить HeidiSQL на Ubuntu 20, необходимо сначала загрузить Wine:

sudo apt-get install wine

затем HeidiSQL

sudo snap install heidisql-wine-beta

Для более ранних версий Ubuntu потребуется обновиться и установить Snapd:

sudo apt update sudo apt install snapd

Следующим шагом необходимо в BILLmanager создать пользователя с возможностью внешнего подключения. Сделать это можно, подключившись к базе данных по ssh с помощью команды mysql billmgr.

HeidiSQL

Теперь создаем нового пользователя (например, admin123) с заданным паролем и предоставляем ему необходимые права:

CREATE USER 'admin123'@'%' IDENTIFIED BY 'пароль';
GRANT ALL privileges ON *.* TO 'admin123'@'%';

Проверяем подключение к нашей БД через консоль:

:~$ mysql -u root -h ххх.хх.134.117 -P 3306 -D mysql -p

Часто порт 3306 по умолчанию закрыт. Чтобы его открыть, выполняем следующие команды (на примере ОС CentOS).

Открываем порт:

firewall-cmd --permanent --add-port=3306/tcp

Перезагружаем firewalld:

service firewalld restart

Выполняем проверку:

firewall-cmd --query-port=3306/tcp

После этого подключение должно пройти успешно. Можно использовать клиент HeidiSQL для получения информации из БД BILLmanager.

HeidiSQL

С помощью интерфейса HeidiSQL можно сделать dump базы данных и при необходимости восстанавливать ее.

Дамп базы данных
Дамп базы данных

Ознакомиться с описанием других полезных инструментов HeidiSQL можно на сайте продукта.

Логирование запросов

Также рекомендуем включить подробное логирование запросов к базе данных, а именно general_log.

Проверить его статус можно командой:

MariaDB [billmgr]> SHOW VARIABLES LIKE 'general_log'\G;
*************************** 1. row ***************************
Variable_name: general_log
Value: OFF
1 row in set (0.01 sec)
Логирование запросов

Включаем логирование:

MariaDB [(none)]> SET GLOBAL general_log=1;

Query OK, 0 rows affected (0.06 sec)

Создаем файл лога:

touch /var/log/mysql_all.log

Меняем пользователя:

chown mysql /var/log/mysql_all.log

Задаем, какой файл лога использовать:

MariaDB [(none)]> SET GLOBAL general_log_file='/var/log/mysql_all.log';

Query OK, 0 rows affected (0.00 sec)

Выполняем проверку:

file /var/log/mysql_all.log

/var/log/mysql_all.log: ASCII text, with very long lines

На случай перезагрузок — добавляем в блок [mysqld] или [mysqld_safe] файла /etc/my.cnf эти же директивы:

general_log = 1

general_log_file = "/var/log/mysql_all.log"

Заключение

После установки внешнего клиента и настройки его подключения к базе данных вы получаете удобный инструмент для работы с данными: создавать запросы, выполнять поиск, создавать резервные копии, работать с таблицами и другие полезные для администрирования действия. И все это — в графическом интерфейсе клиента с простой навигацией и наглядной визуализацией.

Этот способ удобнее и безопаснее, чем подключаться к БД напрямую с консоли, и не требует глубоких знаний SQL.

Также мы рекомендуем логировать все запросы, выполняемые тем или иным пользователем.

При этом HeidiSQL взят как пример — вы можете использовать любой клиент для подключения к базе данных, который будет удобен именно вам.

Ответы на многие вопросы, связанные с работой BILLmanager 6, есть в Базе знаний на нашем сайте.