Установка и базовая настройка MariaDB на Ubuntu 22.04

Что такое MariaDB
MariaDB — это свободная и открытая реляционная СУБД, форк MySQL, совместимая по синтаксису и протоколу, часто используемая в Linux-средах. Кратко: быстрая, расширяемая, поддерживает дополнительные движки хранения и набор плагинов. Простая строка определения: MariaDB — это drop-in-замена MySQL для большинства приложений.
Важно: MariaDB подходит для транзакционных и аналитических задач, управления пользовательскими данными и инвентаризацией.
Основные варианты установки
- Установка из стандартных репозиториев Ubuntu (быстро, стабильнее в контексте дистрибутива).
- Установка из официального репозитория MariaDB (позволяет выбрать более новую ветку MariaDB).
Если вам нужна последняя версия MariaDB для специфических функций, рассмотрите официальный репозиторий MariaDB. В этой статье показан базовый путь через apt, плюс варианты и меры безопасности.
Предварительные требования
- Ubuntu 22.04 с правами sudo.
- Подключение к интернету для загрузки пакетов.
- Минимум 1 ГБ ОЗУ для небольших тестовых инсталляций; для продакшна — больше, в зависимости от нагрузки.
Как установить MariaDB на Ubuntu 22.04
Ниже — пошаговый, проверенный рабочий набор команд и объяснения.
Шаг 1: Обновите систему
Обновление пакетов перед установкой снижает шанс конфликтов и обеспечивает получение последних исправлений:
sudo apt update && sudo apt upgrade -yПояснение: сначала apt обновляет список пакетов, затем устанавливает доступные обновления. Флаг -y подтверждает установку автоматически.
Шаг 2: Установите вспомогательные пакеты
Обычно требуется набор утилит для работы с репозиториями и HTTPS:
sudo apt-get install wget software-properties-common dirmngr ca-certificates apt-transport-https -yЭти пакеты пригодятся, если вы будете добавлять сторонние репозитории или работать с ключами.
Шаг 3: Установка MariaDB из репозиториев Ubuntu
Установите сервер и клиент MariaDB следующей командой:
sudo apt install mariadb-server mariadb-client -yПроверка версии MariaDB:
mariadb --versionПроверка статуса службы:
systemctl status mariadbЕсли служба активна, вы увидите статус Active: active (running).
Альтернативный путь: официальный репозиторий MariaDB
Когда нужна конкретная ветка MariaDB (например, 10.6, 10.11 и т.д.), используйте официальный репозиторий MariaDB для Ubuntu 22.04. Процесс включает импорт ключа и добавление соответствующей строки в /etc/apt/sources.list.d/. Подробные команды и актуальные URL лучше взять из официальной инструкции на mariadb.org, чтобы гарантировать корректный адрес и GPG-ключ.
Important: добавление сторонних репозиториев изменяет жизненный цикл пакетов и может повлиять на безопасность и обновления — взвесьте риски.
Базовая настройка безопасности (mysql_secure_installation)
После установки обязательно запустите скрипт для начального жесткого hardening:
sudo mysql_secure_installationТипичные шаги в скрипте:
- Установка пароля root (если требуется).
- Удаление анонимных пользователей.
- Отключение удалённого входа root (рекомендуется для повышения безопасности).
- Удаление тестовой базы данных.
- Перезагрузка таблиц привилегий.
Рекомендации: задайте сложный пароль для root, удалите анонимных пользователей и тестовую базу, перезагрузите привилегии.
Как проверить, что MariaDB работает
Проверка статуса службы:
sudo systemctl status mariadbЕсли служба не запущена, можно запустить её вручную и посмотреть логи:
sudo systemctl start mariadb
sudo journalctl -u mariadb -b --no-pagerЛоги ошибок также находятся в /var/log/mysql/ или /var/log/mysql/error.log в зависимости от конфигурации.
Как работать с MariaDB через командную строку
1. Войти в shell MariaDB
Для входа в консоль MariaDB (без пароля root, если используете unix_socket):
sudo mariadbИли, если root защищён паролем:
mariadb -u root -pПосле входа появится приглашение MariaDB для выполнения SQL-запросов.
2. Создание учётной записи администратора
Лучше создать административного пользователя для повседневной работы, а не использовать root напрямую.
Пример команды (выполните внутри MariaDB):
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'ваш_сложный_пароль' WITH GRANT OPTION;
FLUSH PRIVILEGES;Замените ‘вашсложныйпароль’ на надёжную фразу-пароль. Затем выход:
exitПримечание: современные версии допускают создание пользователей через CREATE USER и последующее GRANT; используйте тот способ, который соответствует вашей версии MariaDB и политике безопасности.
3. Создание базы данных и проверка
Пример создания базы данных и просмотра существующих:
CREATE DATABASE TestDB;
SHOW DATABASES;TestDB появится в списке.
Как полностью удалить MariaDB из Ubuntu 22.04
Если MariaDB больше не требуется, можно удалить пакеты и конфигурацию:
sudo apt-get purge mariadb-* -y
sudo apt-get autoremove -y
sudo rm -rf /var/lib/mysql /etc/mysqlКоманда purge удалит пакеты и связанные конфигурации; rm -rf удалит данные баз. Делайте это только если уверены, что резервные копии не нужны.
Выберите Yes для подтверждения удаления при появлении запроса.
Рекомендации по безопасности и эксплуатации (жёсткая настройка)
- Ограничьте bind-address в /etc/mysql/mariadb.conf.d/50-server.cnf: установите bind-address = 127.0.0.1, если удалённый доступ не нужен.
- Настройте UFW: разрешите только нужные порты (обычно 3306 для MySQL/MariaDB), и только с доверенных хостов:
sudo ufw allow from 192.168.1.0/24 to any port 3306 proto tcp- Используйте TLS для шифрования клиент-серверного трафика (создайте сертификаты и настройте [client] и [mysqld] секции).
- Настройте регулярные резервные копии (mysqldump, mariabackup или снимки LVM). Тестируйте восстановление
- Включите аудит доступа и мониторинг (Prometheus + exporter, или Percona инструменты).
- Ограничьте привилегии: практикуйте принцип наименьших привилегий для приложений.
- Рассмотрите fail2ban для защиты от брутфорс-атак на подключение к mysql.
Тестирование и критерии приёмки
Критерии приёмки для базовой установки:
- Служба mariadb активна (systemctl status показывает active (running)).
- Можно подключиться локально через mariadb или mysql клиент.
- Root защищён паролем или доступ по unix_socket ограничён.
- Тестовая база удалена, а анонимные пользователи удалены (если это требование безопасности).
- Выполнена резервная копия и проверено восстановление на тестовой машине.
Минимальный тест (после установки):
sudo systemctl status mariadb
mariadb -u admin -p -e "SHOW DATABASES;"Если команды выполняются и вывод корректен — установка прошла успешно.
Чек-листы по ролям
Системный администратор:
- Обновить систему, установить MariaDB.
- Настроить автозапуск службы systemd.
- Ограничить bind-address и настроить firewall.
- Настроить бэкапы и план их тестирования.
Разработчик:
- Создать отдельного пользователя с нужными привилегиями.
- Настроить подключения в приложении с использованием пулов соединений.
- Проверить миграции и целостность схемы в тестовой среде.
DBA:
- Настроить политики резервного копирования/восстановления.
- Настроить мониторинг производительности и alert-ы.
- Планировать обслуживание и обновления сервера.
Быстрая «шпаргалка» команд
- Обновление и установка:
sudo apt update && sudo apt upgrade -y
sudo apt install mariadb-server mariadb-client -y- Запуск/остановка/перезапуск:
sudo systemctl start|stop|restart mariadb- Логи и диагностика:
sudo journalctl -u mariadb -b --no-pager
sudo tail -n 200 /var/log/mysql/error.log- Вход в консоль:
sudo mariadb
mariadb -u user -p- Создание пользователя и базы данных:
CREATE DATABASE mydb;
CREATE USER 'app'@'localhost' IDENTIFIED BY 'secure';
GRANT SELECT,INSERT,UPDATE ON mydb.* TO 'app'@'localhost';
FLUSH PRIVILEGES;- Резервное копирование:
mysqldump -u root -p mydb > mydb.sql- Восстановление:
mysql -u root -p mydb < mydb.sqlОшибки и способы их устранения (тройной чек)
Проблема: служба не стартует.
- Проверьте логи: sudo journalctl -u mariadb -e
- Проверьте права и свободное место на диске: df -h и ls -la /var/lib/mysql
- Частая причина — повреждённые файлы ibdata или конфликты версий при обновлении.
Проблема: не удаётся подключиться удалённо.
- Проверьте bind-address и firewall (ufw). Убедитесь, что порт 3306 открыт для доверенного хоста.
Проблема: аутентификация не проходит.
- Убедитесь, что используете правильный плагин аутентификации (unix_socket vs mysql_native_password).
- Проверьте привилегии пользователя: SELECT User,Host,Plugin FROM mysql.user;
Миграция с MySQL и альтернативы
- MariaDB совместима с большинством MySQL-приложений, но перед миграцией протестируйте специфичные функции (например, движки хранения или специфичные плагины).
- Альтернатива: PostgreSQL — если вам важны расширенные типы данных, сложные транзакции и расширяемость SQL.
Совет: сделайте полную резервную копию и тестовую миграцию на отдельной узле перед переводом продакшн-трафика.
Небольшая галерея крайних случаев и когда MariaDB может не подойти
- Очень высокие OLTP нагрузки с жёсткими SLA могут потребовать тонкой настройки инстансов и кластеризации Galera или перехода на специализированные решения.
- Если приложение использует специфические расширения MySQL, несовместимые с MariaDB, потребуется дополнительная проверка.
Краткий словарь терминов (одна строка каждый)
- СУБД: система управления базами данных; программный слой для хранения и доступа к данным.
- bind-address: параметр конфигурации, задающий IP-адрес, на котором слушает сервер.
- mysqldump: утилита для создания дампа БД в текстовом формате.
- unix_socket: метод аутентификации, позволяющий вход без пароля для системного пользователя root.
Итоги
MariaDB на Ubuntu 22.04 устанавливается просто: обновите систему, установите пакеты, выполните mysql_secure_installation, создайте пользователей и базы данных, настроите бэкапы и firewall. Для продакшна дополнительно настройте TLS, мониторинг и регулярное тестирование восстановления.
Завершение: начните с установки в тестовой среде, затем перенесите настройки в продакшн, следуя чек-листам и критериям приёмки выше.
Быстрый поток принятия решения (Mermaid)
flowchart TD
A[Нужна MariaDB?] -->|Да| B{Требуется последняя версия?}
B -->|Да| C[Использовать официальный репозиторий MariaDB]
B -->|Нет| D[Установить из репозиториев Ubuntu]
C --> E[Установить и выполнить hardening]
D --> E
E --> F{Продакшн или тест?}
F -->|Тест| G[Настроить бэкапы, протестировать миграции]
F -->|Продакшн| H[Настроить TLS, мониторинг, SLA]Спасибо за внимание. Если хотите, я могу сгенерировать готовый пример systemd unit, конфигурацию TLS для MariaDB или шаблон cron для регулярных бэкапов.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone