Модуль управления MySQL/MariaDB. ВКР Михаила Шестакова, 2026
- Scheme 47.9%
- Python 30.2%
- Shell 16.3%
- Makefile 4.3%
- HTML 1.3%
form-update-value sets widget display, but form-value in the same callback still reads the old value. Replace ui-show-tables-view call with inline woo-list using the already-captured db variable directly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .gear | ||
| backend | ||
| backend3 | ||
| backends | ||
| polkit | ||
| ui/mysql | ||
| .gitignore | ||
| etu-alterator-mysql.desktop | ||
| etu-alterator-mysql.spec | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
etu-alterator-mysql
Модуль управления MySQL/MariaDB для ЦУС (Центр управления системой) дистрибутивов АЛЬТ Linux.
ВКР Михаила Шестакова, СПбГЭТУ «ЛЭТИ», 2026. Лицензия: GPL v2.
Описание
Модуль интегрируется в ЦУС ALT Linux и позволяет через графический интерфейс:
- Управлять службой MySQL/MariaDB (запуск, остановка, перезапуск, статус)
- Просматривать и создавать/удалять базы данных
- Просматривать таблицы в базе данных
- Управлять пользователями (создание, удаление, назначение привилегий)
- Выполнять произвольные SQL-запросы
- Просматривать журналы службы
Архитектура D-Bus
Модуль использует архитектуру Alterator на D-Bus:
alterator-browser-qt6 (UI в ЦУС)
│ D-Bus: org.altlinux.alterator.mysql
▼
alterator-manager
│ читает /usr/share/alterator/backends/mysql.backend (TOML)
▼
alterator-module-executor
│ запускает shell/python скрипты
▼
backend/ скрипты → MySQL/MariaDB + systemctl
D-Bus интерфейс: org.altlinux.alterator.mysql
Структура проекта
etu-alterator-mysql/
├── .gear/
│ └── rules # tar: . / spec: etu-alterator-mysql.spec
├── etu-alterator-mysql.spec # RPM spec
├── Makefile
├── backends/
│ └── mysql.backend # TOML: D-Bus интерфейс для alterator-manager
├── backend/
│ ├── mysql-service # shell: управление systemctl
│ ├── mysql-databases # python3+PyMySQL: операции с БД
│ ├── mysql-users # python3+PyMySQL: операции с пользователями
│ ├── mysql-query # python3+PyMySQL: выполнение SQL
│ └── mysql-logs # shell: journalctl / файл лога
├── ui/
│ └── mysql/
│ ├── index.scm # Qt/Scheme UI (alterator-browser-qt6)
│ └── index.html # Web UI заглушка
├── etu-alterator-mysql.desktop
└── README.md
Зависимости
| Пакет | Версия |
|---|---|
| alterator | >= 4.10 |
| alterator-manager | любая |
| alterator-module-executor | любая |
| python3 | >= 3.8 |
| python3-module-pymysql | любая |
| mariadb-server / mysql-server | любая (рекомендуется) |
Сборка пакета
Используется gear + hasher:
# Сборка RPM без проверки подписи и мейнтейнера
gear-hsh --no-sisyphus-check=gpg,packager ~/hasher
Результат появится в ~/hasher/repo/.
Ручная установка (для разработки)
make install DESTDIR=/
# или в тестовый каталог:
make install DESTDIR=/tmp/test-install
Тестирование backend-скриптов
# Статус службы
./backend/mysql-service status
# Список БД
./backend/mysql-databases list 127.0.0.1 3306 root ''
# Список пользователей
./backend/mysql-users list 127.0.0.1 3306 root ''
# SQL-запрос
./backend/mysql-query 127.0.0.1 3306 root '' none 'SHOW VARIABLES LIKE "version"'
# Последние 50 строк журнала
./backend/mysql-logs 50