MAATRIX / Блог / MariaDB на Ubuntu 24.04: пошаговая установка

MariaDB на Ubuntu 24.04: пошаговая установка

MariaDB на Ubuntu 24.04: пошаговая установка

MAATRIX

Установка MariaDB на Ubuntu 24.04 (Noble Numbat) занимает несколько минут, но у этой версии системы есть свои детали: свежая MariaDB из штатного репозитория, аутентификация root через unix_socket, наследие путей от MySQL. Ниже — пошаговый путь именно под Ubuntu 24.04: подготовка системы, установка, первичная защита, работа с сокетной аутентификацией, создание пользователей с правильной кодировкой и автозапуск. Всё с учётом особенностей Noble, чтобы не наступить на типичные грабли.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Подготовка системы

Обновите Ubuntu перед установкой — это снимает конфликты зависимостей на свежем сервере:

sudo apt update && sudo apt upgrade -y

Ubuntu 24.04 по умолчанию работает в UTF-8, что удобно для MariaDB: русский текст обрабатывается корректно почти без усилий. Но саму базу всё равно создавайте в utf8mb4 — об этом ниже. Проверьте системную локаль командой locale, и если нужной нет, сгенерируйте: sudo locale-gen ru_RU.UTF-8. Это важно для корректной работы с русским текстом в консоли и утилитах резервного копирования.

Локацию сервера выбирайте по аудитории: для российских проектов — RU с минимальным пингом и хранением персональных данных в стране по 152-ФЗ, для зарубежных сервисов — US или UK. Удобно определиться сразу при заказе VPS.

Установка MariaDB

В штатном репозитории Ubuntu 24.04 лежит свежая версия MariaDB — актуальная для подавляющего большинства задач. Установка в одну команду:

sudo apt install -y mariadb-server
sudo systemctl enable --now mariadb

Проверьте, что сервер запустился и слушает порт:

sudo systemctl status mariadb
sudo ss -ltnp | grep 3306

Важная деталь наследия: MariaDB в Ubuntu использует те же пути и имена, что достались от MySQL. Данные лежат в /var/lib/mysql, конфиги — в каталоге /etc/mysql/mariadb.conf.d/, служба в systemd называется mariadb (алиас mysql тоже работает). Клиентские команды продублированы: и mariadb, и привычный mysql открывают одну консоль. Если в инструкциях встречаются старые имена — они работают, это не ошибка.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS с Ubuntu 24.04

Первичная защита

Свежая установка требует базовой гигиены. Запустите улучшенный скрипт защиты MariaDB:

sudo mariadb-secure-installation

Скрипт проведёт по шагам: настроить аутентификацию root, удалить анонимных пользователей, запретить удалённый вход root, удалить тестовую базу, перезагрузить привилегии. Отвечайте утвердительно на всё — это минимум, без которого сервер уязвим с первой минуты работы. Скрипт также предложит переключить root на аутентификацию через unix_socket, если этого ещё не сделано, — соглашайтесь, это правильный и безопасный режим.

Особенность Ubuntu: unix_socket для root

Как и у MySQL, в MariaDB на Ubuntu root входит через unix_socket — только локально из-под системного root, без пароля по сети. Поэтому в консоль вы заходите так:

sudo mariadb

Это удобно и безопасно: администратором базы становится тот, у кого уже есть права root на сервере. Не переключайте root на пароль без реальной необходимости — сокетный вход надёжнее. Главный барьер защиты — доступ к серверу по SSH-ключу. Держите SSH под ключом с отключённым входом по паролю, и административный доступ к MariaDB защищён на уровне операционной системы, а не одним лишь паролем базы.

Если инструменту нужен парольный вход по TCP и он не умеет работать через сокет, не ломайте защиту root — заведите отдельного административного пользователя с паролем и нужными правами специально под этот инструмент. Так основной root остаётся под сокетной защитой, а инструмент получает ограниченный и понятный доступ. Это чистое разделение ответственности, которое сильно упрощает разбор, если что-то пойдёт не так.

Пользователь, база и кодировка

Приложение не должно ходить под root. Создайте отдельного пользователя и базу в правильной кодировке. Зайдите через sudo mariadb и выполните:

CREATE DATABASE appdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'слоЖный_Пароль_2026';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;

Обязательно utf8mb4 — полноценный UTF-8 с поддержкой эмодзи и всех символов, в отличие от урезанного трёхбайтового utf8. Создав базу в неправильной кодировке, вы позже поймаете искажения русского текста, а чинить это придётся восстановлением из дампа. Правило простое: одно приложение — один пользователь и одна база. Проверьте вход: mariadb -u appuser -p appdb.

Выдавайте пользователю ровно те права, что ему нужны. Для веб-приложения ALL PRIVILEGES на его собственную базу — разумный минимум: он распоряжается своей базой, но не видит чужих и не трогает сервер. Отчётному сервису, который только читает данные, хватит права SELECT — тогда даже при утечке его пароля данные останутся неизменными. Такое разграничение почти ничего не стоит при настройке, но заметно снижает ущерб при компрометации, и заложить его лучше с самого начала. MariaDB, кстати, поддерживает и полноценные роли, к которым удобно привязывать наборы прав, если пользователей и сервисов много.

Автозапуск и дальнейшие шаги

На Ubuntu 24.04 MariaDB настроена на автозапуск через systemd — проверьте командой sudo systemctl is-enabled mariadb, ответ должен быть enabled. После перезагрузки сервера база поднимется сама. По умолчанию MariaDB слушает только localhost, что безопасно: если приложение на том же VPS, открывать порт не нужно.

Если нужен доступ с другого сервера, привяжите MariaDB к внутреннему адресу в 50-server.cnf, заведите пользователя под конкретный IP и закройте порт 3306 фаерволом, а лучше ходите через SSH-туннель. Настройте резервное копирование через mariadb-dump --single-transaction по cron с выгрузкой копии на отдельное хранилище и включите автоматические обновления безопасности системы через unattended-upgrades. База без бэкапа однажды обернётся потерей данных, а завести копирование в первый день намного проще, чем сожалеть о его отсутствии позже. Проверьте хотя бы раз, что дамп реально разворачивается на тестовой базе: непроверенная копия нередко оказывается неполной именно тогда, когда она нужна. И следите за свободным местом на диске — переполнение накопившимися копиями или бинлогами роняет базу так же надёжно, как отказ железа. Чтобы всё работало на стабильном железе, нужен надёжный VPS с Ubuntu 24.04. В MAATRIX можно арендовать сервер с Ubuntu под MariaDB в России, США или Великобритании и оплатить картой РФ, по СБП, криптой или токеном MAAT — иностранная карта не нужна.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS с Ubuntu 24.04

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Частые вопросы

Какая версия MariaDB в Ubuntu 24.04?

Свежая версия из штатного репозитория, актуальная для большинства задач, получает обновления вместе с системой. Отдельный репозиторий MariaDB нужен, только если требуется конкретный релиз.

Почему root входит без пароля через sudo mariadb?

Root настроен на аутентификацию unix_socket — локально из-под системного root. Это безопасно. Для приложений заводите отдельных пользователей с паролями.

Почему у MariaDB пути и команды от MySQL?

MariaDB — форк MySQL, и наследие путей (/var/lib/mysql) и команд (mysql) сохранено намеренно для совместимости. Старые имена продолжают работать.

Как избежать кракозябр?

Создавайте базы с utf8mb4 и подключайте приложение в той же кодировке. Урезанный utf8 неполон — используйте именно utf8mb4.

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.