🔹 Введение: Зачем нужна MariaDB?
MariaDB — это современная, высокопроизводительная и полностью открытая система управления базами данных (СУБД), форк MySQL. Она идеально подходит для:
- Разработки веб-приложений (WordPress, Joomla, Drupal)
- Хранения структурированных данных
- Анализа и обработки информации
- Изучения основ SQL и администрирования БД
Почему именно MariaDB в RedOS?
- Полная совместимость с MySQL
- Высокая производительность и надежность
- Активное сообщество и регулярные обновления
- Входит в стандартные репозитории RedOS
🔹 1. Установка MariaDB на RedOS
1.1. Обновление системы и установка пакетов
Откройте терминал и выполните следующие команды:
# Обновление информации о пакетах из репозиториев
sudo dnf update -y
# Установка сервера MariaDB и клиента
sudo dnf install mariadb-server mariadb -y
# Пояснение:
# mariadb-server - непосредственно сервер СУБД
# mariadb - клиент для подключения к серверу
# -y - автоматическое подтверждение установки
1.2. Запуск и настройка автоматического старта
# Включение автозапуска при загрузке системы
sudo systemctl enable mariadb
# Запуск службы MariaDB
sudo systemctl start mariadb
# Проверка статуса службы
sudo systemctl status mariadb
# Пояснение:
# systemctl enable - добавляет службу в автозагрузку
# systemctl start - запускает службу немедленно
# systemctl status - показывает текущее состояние службы
1.3. Настройка безопасности
# Запуск скрипта первоначальной настройки безопасности
sudo mysql_secure_installation
# Пояснение: Этот скрипт проведет вас через:
# 1. Установку пароля root
# 2. Удаление анонимных пользователей
# 3. Запрет удаленного входа root
# 4. Удаление тестовой базы данных
# 5. Обновление привилегий
Рекомендуемые ответы на вопросы скрипта:
- Set root password? Y (установите сложный пароль)
- Remove anonymous users? Y (повышает безопасность)
- Disallow root login remotely? Y (защита от атак извне)
- Remove test database? Y (удаляет ненужные данные)
- Reload privilege tables? Y (применяет изменения)
🔹 2. Подключение к MariaDB через командную строку
2.1. Базовое подключение
# Подключение к серверу от имени root
mysql -u root -p
# Пояснение:
# -u root - указание пользователя (root)
# -p - запрос пароля (будет запрошен после ввода команды)
# После ввода команды введите пароль, установленный на предыдущем шаге
2.2. Основные команды управления
После успешного подключения вы окажетесь в интерактивной консоли MariaDB:
-- Показать все существующие базы данных
SHOW DATABASES;
-- Создать новую базу данных с именем 'company'
CREATE DATABASE company;
-- Выбрать базу данных 'company' для дальнейшей работы
USE company;
-- Показать таблицы в текущей базе данных (пока пусто)
SHOW TABLES;
-- Пояснение:
-- Каждая команда заканчивается точкой с запятой (;)
-- SQL не чувствителен к регистру, но принято писать команды в верхнем регистре
--создать нового пользователя
CREATE USER 'dbeaver_user'@'localhost' IDENTIFIED BY 'password';
- CREATE USER - команда создания пользователя
- 'dbeaver_user' - имя нового пользователя
- @'localhost' - указывает, что пользователь может подключаться только с локальной машины
- IDENTIFIED BY 'password' - устанавливает пароль для пользователя
Альтернативные варианты хоста:
- 'dbeaver_user'@'localhost' - только с этой же машины
- 'dbeaver_user'@'%' - с любого хоста
- 'dbeaver_user'@'192.168.1.%' - с определенной подсети
GRANT ALL PRIVILEGES ON company.* TO 'dbeaver_user'@'localhost';
Что делает: Назначает права доступа пользователю на базу данных
Разбор по частям:
- GRANT - команда предоставления прав
- ALL PRIVILEGES - все возможные права:
SELECT - чтение данных
INSERT - добавление записей
UPDATE - изменение данных
DELETE - удаление записей
CREATE - создание таблиц
DROP - удаление таблиц
ALTER - изменение структуры
и другие права - ON company.* - на какую базу данных:
company - имя базы данных
.* - все таблицы в этой базе - TO 'dbeaver_user'@'localhost' - кому предоставляются права
FLUSH PRIVILEGES;
Что делает: Применяет изменения прав доступа без перезагрузки сервера
Подробное объяснение:
- Когда вы создаете пользователей или меняете права, MariaDB кэширует эту информацию в памяти
- FLUSH PRIVILEGES принудительно перезагружает таблицы прав доступа из системных таблиц (mysql.user, mysql.db, etc.)
- Без этой команды изменения могут не вступить в силу сразу
Когда НЕ нужен FLUSH PRIVILEGES:
- При использовании команд CREATE USER, GRANT - обычно применяется автоматически
- В современных версиях MySQL/MariaDB
Когда ОБЯЗАТЕЛЬНО нужен:
- При прямом изменении системных таблиц (например, UPDATE mysql.user SET ...)
- В некоторых старых версиях СУБД
🔹 3. Создание базы данных и таблиц
3.1. Создание таблицы "сотрудники"
-- Создание таблицы employees (сотрудники)
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
position VARCHAR(100),
salary DECIMAL(10, 2),
hire_date DATE,
department_id INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) DEFAULT CHARSET=utf8mb4;
-- Пояснение структуры:
-- id - уникальный идентификатор, автоматически увеличивается
-- AUTO_INCREMENT - автоматическая генерация ID
-- PRIMARY KEY - первичный ключ таблицы
-- VARCHAR(50) - строка переменной длины (макс. 50 символов)
-- NOT NULL - поле обязательно для заполнения
-- DECIMAL(10, 2) - число с фиксированной точностью (10 цифр, 2 после запятой)
-- DATE - тип данных для даты
-- TIMESTAMP DEFAULT CURRENT_TIMESTAMP - временная метка с автоматическим заполнением
3.2. Создание таблицы "отделы"
-- Создание таблицы departments (отделы)
CREATE TABLE departments (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL UNIQUE,
manager VARCHAR(100),
location VARCHAR(150)
) DEFAULT CHARSET=utf8mb4;
3.3. Добавление данных в таблицы
-- Добавление отделов
INSERT INTO departments (name, manager, location) VALUES
('ИТ отдел', 'Иван Сидоров', 'Этаж 3, офис 301'),
('Отдел продаж', 'Мария Петрова', 'Этаж 2, офис 205'),
('Бухгалтерия', 'Ольга Иванова', 'Этаж 1, офис 102');
-- Добавление сотрудников
INSERT INTO employees (first_name, last_name, position, salary, hire_date, department_id) VALUES
('Алексей', 'Смирнов', 'Разработчик', 85000.00, '2023-01-15', 1),
('Екатерина', 'Кузнецова', 'Менеджер по продажам', 75000.00, '2023-02-20', 2),
('Дмитрий', 'Попов', 'Бухгалтер', 70000.00, '2023-03-10', 3),
('Анна', 'Васильева', 'Тестировщик', 65000.00, '2023-04-05', 1);
-- Пояснение:
-- VALUES позволяет добавить несколько строк за один запрос
-- Даты указываются в формате 'ГГГГ-ММ-ДД'
-- department_id соответствует id из таблицы departments
🔹 4. Установка и настройка DBeaver
4.1. Установка DBeaver
DBeaver — это мощная кроссплатформенная среда для работы с базами данных.
Для установки в консоли введите следующие команды:
# Установка пакета
sudo dnf install dbeaver
4.2. Создание нового подключения
- Запустите DBeaver через меню приложений или командой: dbeaver
2. Создайте новое подключение:
Меню Database → New Database Connection
Выберите MySQL (MariaDB полностью совместима)
Нажмите Next
3. Настройте параметры подключения:
Server Host: localhost
Port: 3306
Database: company
Username: dbeaver_user
Password: ваш_пароль_root
4. Тестирование подключения:
Нажмите Test Connection
Если все правильно — увидите сообщение "Connected"
4.2. Дополнительные настройки
Во вкладке Driver Properties можно настроить:
- allowPublicKeyRetrieval = true (если возникают проблемы с аутентификацией)
- useSSL = false (для локального подключения)
🔹 5. Работа с базой данных в DBeaver
5.1. Просмотр структуры базы данных
В левой панели (Database Navigator) разверните:
- Ваше подключение → company → Tables
- Здесь вы увидите созданные таблицы employees и departments
5.2. Просмотр и редактирование данных
- Двойной клик по таблице откроет данные
- Редактирование данных:
Изменяйте значения прямо в таблице
Для сохранения нажмите Ctrl+S или кнопку "Save"
Для отмены изменений — Esc - Добавление новых строк:
Прокрутите таблицу до конца (к пустой строке)
Заполните необходимые поля
Сохраните изменения
5.3. Выполнение SQL-запросов
- Откройте SQL-редактор:
Правой кнопкой на базе данных → SQL Editor → New SQL Script
Или нажмите Ctrl+Shift+N - Пример запроса:
-- Выборка всех сотрудников с информацией об отделе
SELECT
e.first_name AS 'Имя',
e.last_name AS 'Фамилия',
e.position AS 'Должность',
e.salary AS 'Зарплата',
d.name AS 'Отдел',
d.manager AS 'Руководитель отдела'
FROM employees e
JOIN departments d ON e.department_id = d.id
ORDER BY e.salary DESC;
3. Выполнение запроса:
Выделите запрос или поставьте курсор на него
Нажмите Ctrl+Enter или кнопку "Execute"
5.4. Создание диаграммы базы данных
- Правой кнопкой на базе данных →View Diagram
- DBeaver автоматически построит ER-диаграмму
- Можно перемещать таблицы для лучшего восприятия
5.5. Экспорт и импорт данных
Экспорт данных:
- Правой кнопкой на таблице → Export Data
- Выберите формат: CSV, JSON, Excel, SQL
- Настройте параметры экспорта
Импорт данных:
- Правой кнопкой на таблице → Import Data
- Выберите файл с данными
- Настройте соответствие полей
🔹 6. Резервное копирование и восстановление
6.1. Через командную строку
# Создание резервной копии базы company
mysqldump -u root -p company > company_backup_$(date +%Y%m%d).sql
# Восстановление из резервной копии
mysql -u root -p company < company_backup_20231215.sql
# Пояснение:
# mysqldump - утилита для создания дампов
# $(date +%Y%m%d) - автоматическое добавление даты в имя файла
6.2. Через DBeaver
- Правой кнопкой на базе данных → Tools → Backup
- Выберите объекты для резервирования
- Укажите путь для сохранения
- Для восстановления: Tools → Restore
🔹 7. Создание пользователя с ограниченными правами
7.1. Создание пользователя через консоль
-- Подключение к MariaDB от root
mysql -u root -p
-- Создание нового пользователя
CREATE USER 'manager'@'localhost' IDENTIFIED BY 'manager_password';
-- Предоставление прав на базу company
GRANT SELECT, INSERT, UPDATE ON company.* TO 'manager'@'localhost';
-- Обновление привилегий
FLUSH PRIVILEGES;
-- Пояснение:
-- CREATE USER - создает нового пользователя
-- GRANT - предоставляет права (SELECT - чтение, INSERT - вставка, UPDATE - обновление)
-- FLUSH PRIVILEGES - применяет изменения прав
7.2. Подключение под новым пользователем в DBeaver
Создайте новое подключение в DBeaver с параметрами:
- Username: manager
- Password: manager_password
- Database: company
Этот пользователь сможет только читать и изменять данные, но не сможет изменять структуру таблиц.
🔹 8. Решение частых проблем
Проблема: Ошибка подключения "Access denied"
Решение: Проверьте правильность пароля и права пользователя
Проблема: DBeaver не видит таблицы
Решение: Обновите connection (правой кнопкой → Refresh)
🔹 Заключение
Вы успешно развернули полноценную среду для работы с базами данных на RedOS! Теперь вы можете:
✅ Устанавливать и настраивать MariaDB
✅ Создавать базы данных и таблицы через командную строку
✅ Работать с данными через графический интерфейс DBeaver
✅ Выполнять сложные SQL-запросы
✅ Управлять правами пользователей
✅ Создавать резервные копии данных
Преимущества использования MariaDB с DBeaver:
- Визуальное представление данных
- Удобное редактирование таблиц
- Мощный SQL-редактор с подсветкой синтаксиса
- Инструменты для импорта/экспорта данных
- Построение диаграмм отношений между таблицами
Этот стек технологий отлично подходит как для обучения, так и для профессиональной разработки приложений, работающих с базами данных.