MariaDB на Debian 12 ставят, когда нужен предсказуемый MySQL-совместимый сервер баз данных без лишней экзотики. Но дальше обычно начинается рутина: база встала, а удалённо не подключается; забыли закрепить пароль; не включили автозапуск; не настроили кодировку; не проверили, что база реально слушает нужный сокет и порт. Ниже схема, которая доводит MariaDB до нормального состояния за один проход и сразу даёт проверку, что всё работает.
Установка MariaDB из репозитория Debian 12
На Debian 12 самый простой путь это штатные пакеты. Они достаточно стабильные и хорошо интегрируются с systemd.
sudo -i
apt update
apt install -y mariadb-server mariadb-client
systemctl enable --now mariadb
systemctl status mariadb --no-pager
Проверка версии:
mariadb --version
Базовая первичная защита без сюрпризов
Запусти стандартный мастер. Он приведёт базу в нормальный вид: пароль root, запрет анонимных пользователей, удаление тестовой базы, ограничения на удалённый root.
mariadb-secure-installation
Если мастер спрашивает про переключение на unix_socket или пароль, на сервере чаще удобно оставить вход root только локально, а для приложений создавать отдельного пользователя. Это безопаснее и проще для сопровождения.
Нормальная схема: отдельная база и пользователь под проект
Создай базу и пользователя, которые будет использовать сайт или приложение. Это лучший способ не убить себе доступ и не хранить root-пароль в конфиге приложения.
mariadb
Внутри консоли выполни:
CREATE DATABASE appdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'Strong_Password_ChangeMe';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Сразу проверь, что логин работает:
mariadb -u appuser -p appdb
Если заходит, база и права в порядке.
Проверка, что база реально работает и стартует сама
Проверь, что сервис включён и слушает локально:
systemctl is-enabled mariadb
ss -lntp | grep 3306 || true
Для типового VPS правильный вариант это слушать только localhost, если у тебя нет отдельного приватного контура. Так ты не выставляешь базу в интернет.
Если всё же нужен удалённый доступ
Удалённый доступ к MariaDB почти всегда приносит проблемы безопасности. Если он тебе реально нужен, делай это через VPN или хотя бы ограничение по IP и нормальный фаервол. Минимально безопасная схема такая: база слушает внешний интерфейс, а доступ открыт только с одного-двух IP.
-
Разрешаем прослушивание на интерфейсе:
Открой конфиг:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Найди строку:
bind-address = 127.0.0.1
Поменяй на:
bind-address = 0.0.0.0
Перезапусти:
sudo systemctl restart mariadb
-
Создай пользователя для конкретного IP, а не для всех:
mariadb
CREATE USER 'appuser'@'YOUR_IP' IDENTIFIED BY 'Strong_Password_ChangeMe';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'YOUR_IP';
FLUSH PRIVILEGES;
EXIT;
-
Открой порт только для нужного IP (пример для nftables):
sudo nft add rule inet filter input ip saddr YOUR_IP tcp dport 3306 accept
Проверка, что порт слушает:
ss -lntp | grep 3306 || true
И с удалённой машины:
mariadb -h SERVER_IP -u appuser -p appdb
Если подключилось, всё ок. Если нет, чаще всего виноват фаервол, неверный user@host или DNS/IP.
Частые ошибки и быстрые фиксы
Если Access denied — почти всегда неправильный host у пользователя. В MariaDB appuser@localhost и appuser@%это разные сущности. Проверь:
SELECT user, host FROM mysql.user;
Если сервис не стартует после апдейтов — проверь статус и последние строки лога:
systemctl status mariadb --no-pager
journalctl -u mariadb --no-pager | tail -n 80
Если проект внезапно начинает писать “Incorrect string value” — это почти всегда не utf8mb4. Убедись, что база создана с utf8mb4, как в примере выше.
MariaDB не любит медленный диск и нестабильные ресурсы: когда IO слабый, задержки вылезают сразу, а ты потом думаешь, что “база тормозит сама по себе”. На QCKL удобно держать MariaDB на NVMe и быстро масштабироваться: от маленького сайта до нагрузки с очередями и кэшем. Если нужно, мы поможем не просто поставить MariaDB, а довести до продакшн-состояния: нормальные параметры, бэкапы, мониторинг, доступы и безопасная схема подключения.
Оформите услугу на сайте qckl.net, и мы поможем вам установить MariaDB на Debian 12, настроить пользователей и права, включить автозапуск и проверить, что база стабильно работает под вашу нагрузку.
