<===
2026-03-09 08:01:56
В MariaDB это обычно решается не внешними GUI, а системными представлениями и утилитами, которые уже есть в сервере.
## Стандартные SQL-инструменты
Основная точка входа – служебная БД `INFORMATION_SCHEMA` и `mysql`:
- Список всех баз данных:
```sql
SHOW DATABASES;
```
- Все таблицы во всех базах с типом и движком:
```sql
SELECT TABLE_SCHEMA,
TABLE_NAME,
TABLE_TYPE,
ENGINE
FROM INFORMATION_SCHEMA.TABLES
ORDER BY TABLE_SCHEMA, TABLE_NAME;
```
- Полное описание структуры одной таблицы:
```sql
SHOW CREATE TABLE db_name.table_name\G
```
или в виде строк:
```sql
SELECT COLUMN_NAME,
COLUMN_TYPE,
IS_NULLABLE,
COLUMN_DEFAULT,
COLUMN_KEY,
EXTRA
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'db_name'
ORDER BY TABLE_NAME, ORDINAL_POSITION;
```
- Все внешние ключи и связи:
```sql
SELECT CONSTRAINT_SCHEMA,
TABLE_NAME,
CONSTRAINT_NAME,
REFERENCED_TABLE_NAME
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
ORDER BY CONSTRAINT_SCHEMA, TABLE_NAME;
```
Из этих представлений можно собрать «паспорт» БД – список таблиц, полей, индексов, ограничений, типов и т.д.
## CLI- и дамп-инструменты
Для “идентификации” схемы (получить полную структуру как артефакт) обычно используют:
- `mysqldump` – дамп только схемы без данных:
```bash
mysqldump -h host -u user -p \
--databases db1 db2 \
--no-data --routines --events --triggers > schema.sql
```
Получается один файл со всеми `CREATE DATABASE`, `CREATE TABLE`, `CREATE VIEW`, `CREATE PROCEDURE` и т.п., по нему можно однозначно идентифицировать структуру.
- `mariadb-dump` – аналогично, в новых установках MariaDB.
Это удобно: файл можно класть в git, сравнивать версии, смотреть диффы схем между серверами.
## GUI / внешние инструменты
Если нужен визуальный обзор структуры, ER-диаграммы и т.п., можно использовать:
- MySQL Workbench (к MariaDB подключается как к MySQL, reverse engineering схемы, экспорт модели в SQL).
- DBeaver / HeidiSQL / Navicat, dbForge Studio и т.п. – показывают дерево БД, таблиц, колонок, индексов и умеют генерировать `CREATE TABLE`/`CREATE DATABASE`.
Чаще всего на практике для “идентификации” структуры достаточно одной связки: `mysqldump --no-data` для фиксации схемы и запросов к `INFORMATION_SCHEMA` для разовых проверок/отчетов.
Back to list