Модуль управления MySQL/MariaDB. ВКР Михаила Шестакова, 2026
  • Scheme 47.9%
  • Python 30.2%
  • Shell 16.3%
  • Makefile 4.3%
  • HTML 1.3%
Find a file
Михаил cc2ec124b7 UI: fix table list refresh after creation
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>
2026-06-03 21:35:29 +03:00
.gear Initial D-Bus alterator module skeleton 2026-05-25 04:41:29 +03:00
backend Fix user switching: socket auth, arg quoting, connect flow 2026-06-03 00:30:35 +03:00
backend3 Add alteratord backend3 module for woo-protocol support 2026-06-02 01:43:42 +03:00
backends Fix user switching: socket auth, arg quoting, connect flow 2026-06-03 00:30:35 +03:00
polkit Working D-Bus backend, add polkit policy 2026-05-28 18:51:16 +03:00
ui/mysql UI: fix table list refresh after creation 2026-06-03 21:35:29 +03:00
.gitignore Add gitignore 2026-05-25 04:46:14 +03:00
etu-alterator-mysql.desktop Add legacy1 backend for acc visibility, fix desktop category 2026-06-02 00:04:16 +03:00
etu-alterator-mysql.spec spec: fix group, use English description and changelog for rpm-build 2026-06-03 00:42:47 +03:00
LICENSE Initial commit 2026-05-20 09:11:54 +03:00
Makefile Add alteratord backend3 module for woo-protocol support 2026-06-02 01:43:42 +03:00
README.md Initial D-Bus alterator module skeleton 2026-05-25 04:41:29 +03:00

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