Установка MariaDB на Debian 13, 12, 11: подробное руководство

MariaDB — это популярная система управления базами данных (СУБД), совместимая с MySQL. Она используется для хранения данных веб-сайтов (WordPress, Joomla), приложений и сервисов. В отличие от Oracle MySQL, MariaDB полностью открыта и активно развивается сообществом. В Debian MariaDB находится в стандартных репозиториях, поэтому установка не требует добавления сторонних источников.

💡 В этом руководстве мы установим MariaDB из официальных репозиториев Debian, выполним начальную настройку безопасности, научимся управлять сервисом и при необходимости полностью удалим базу данных.

В этой статье вы узнаете:

  • Как установить MariaDB Server и клиент
  • Какие версии MariaDB в разных выпусках Debian
  • Как выполнить первоначальную настройку безопасности (пароль root, удаление анонимных пользователей)
  • Как управлять сервисом MariaDB (запуск, остановка, статус)
  • Как установить только клиент (для удалённого подключения)
  • Как удалить MariaDB и очистить данные

Для кого: разработчики (нужна база данных для приложений), администраторы серверов (WordPress, LEMP), пользователи Debian 11, 12 и 13.

1. 🔧 Предварительные требования

Перед установкой убедитесь, что:

  • У вас установлена Debian 11, 12 или 13 (любая редакция)
  • Подключение к интернету стабильно
  • У вас есть хотя бы 500 МБ свободного места (для базы данных потребуется больше)

⚠️ ВАЖНО: Проверьте права sudo перед установкой

Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:

sudo whoami

✅ Если выводит root — всё в порядке, можете продолжать.

❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo

Обновление системы

Перед установкой всегда обновляйте список пакетов:

sudo apt update && sudo apt upgrade -y

Что делает:

  • sudo — права суперпользователя
  • apt update — обновляет список доступных пакетов
  • && — выполняет следующую команду только если предыдущая успешна
  • apt upgrade -y — обновляет все установленные пакеты, -y автоматически подтверждает

Зачем: Это стандартная практика безопасности перед установкой нового ПО.

2. 📊 Версии MariaDB в разных выпусках Debian

Версия DebianВерсия MariaDBИсточникДля кого
Debian 13 (Trixie)11.8.xtrixie/mainНовые проекты,
нужна свежая версия
Debian 12 (Bookworm)10.11.xbookworm/mainСтабильные
продакшн-системы
Debian 11 (Bullseye)10.5.xbullseye-securityСтарые системы,
совместимость

💡 Рекомендация: Используйте версию из вашего Debian по умолчанию. Она получает обновления безопасности через официальные репозитории. Если вам нужна более новая версия, чем предлагает Debian, рассмотрите официальный репозиторий MariaDB, но это выходит за рамки данного руководства.

3. 📦 Установка MariaDB Server и клиента

3.1 Установка пакетов

sudo apt install mariadb-server mariadb-client -y

Что делает:

  • mariadb-server — сам сервер базы данных (служба)
  • mariadb-client — клиент командной строки для управления базой данных

Зачем: Клиент нужен для выполнения SQL-запросов, создания пользователей, дампов и т.д. Сервер — это ядро СУБД.

3.2 Проверка установки

mariadb --version

Ожидаемый вывод в терминале (Debian 13):

mariadb from 11.8.6-MariaDB, client 15.2 for debian-linux-gnu (x86_64) using EditLine wrapper

Для Debian 12: 10.11.14-MariaDB
Для Debian 11: 10.5.29-MariaDB

3.3 Проверка статуса сервиса

systemctl is-enabled mariadb && systemctl is-active mariadb

Ожидаемый вывод:

enabled
active

Что делает:

  • is-enabled — проверяет, запускается ли MariaDB при загрузке системы
  • is-active — проверяет, работает ли сервис сейчас

Если сервис не активен:

sudo systemctl enable mariadb --now

4. 🔒 Настройка безопасности MariaDB

После установки MariaDB имеет небезопасные настройки по умолчанию:

  • Пустой пароль для root
  • Анонимные пользователи (без пароля)
  • Тестовая база данных
  • Возможность удалённого входа под root

Для исправления этого запустите скрипт безопасности:

sudo mariadb-secure-installation

Что делает: Интерактивный скрипт, который задаёт вопросы и меняет настройки.

4.1 Пошаговое прохождение скрипта

Скрипт задаст несколько вопросов. Вот рекомендуемые ответы:

ВопросРекомендуемый ответЧто меняет
Switch to unix_socket
authentication?
Y (yes)Позволяет пользователю root
системы входить в MariaDB без
пароля
Change the root password?Y (yes)Установить пароль для root
(если не используете
unix_socket)
Remove anonymous users?Y (yes)Удаляет анонимных
пользователей
Disallow root login remotely?Y (yes)Запрещает вход под root с
других компьютеров
Remove test database and
access to it?
Y (yes)Удаляет тестовую базу данных
Reload privilege tables now?Y (yes)Применяет изменения
немедленно

Что делает unix_socket authentication: Позволяет вам (и только вам) подключаться к MariaDB командой sudo mariadb без ввода пароля. Это удобно и безопасно, так как другие пользователи не имеют доступа к вашей учётной записи.

5. 🛠️ Основные команды администрирования

5.1 Подключение к MariaDB

Если вы выбрали unix_socket authentication (рекомендуется):

sudo mariadb

Если вы установили пароль для root:

mariadb -u root -p

5.2 Проверка привязки к localhost

По умолчанию MariaDB слушает только локальный интерфейс (127.0.0.1). Это безопасно, если веб-приложение и база данных находятся на одном сервере.

sudo grep -E '^bind-address' /etc/mysql/mariadb.conf.d/50-server.cnf

Ожидаемый вывод: bind-address = 127.0.0.1

Зачем: Если вывод отличается (например, 0.0.0.0 или пустой), MariaDB доступна из сети, что может быть небезопасно.

5.3 Управление сервисом

# Остановить MariaDB
sudo systemctl stop mariadb

# Запустить MariaDB
sudo systemctl start mariadb

# Перезапустить MariaDB
sudo systemctl restart mariadb

# Посмотреть статус
systemctl status mariadb

6. 🖥️ Установка только клиента (без сервера)

Если вам нужно подключаться к удалённой базе данных (например, на другом сервере), устанавливать сервер не обязательно.

sudo apt install mariadb-client -y

Что делает: Устанавливает только клиент командной строки (mariadb, mysqldump и другие).

Зачем: Экономит место и ресурсы, если сама база данных работает на другом сервере.

Подключение к удалённому серверу:

mariadb -h 192.168.1.100 -u username -p

7. ❌ Удаление MariaDB

7.1 Остановка и удаление пакетов

sudo systemctl disable --now mariadb
sudo apt remove --purge mariadb-server mariadb-client -y
sudo apt autoremove -y

Что делает:

  • disable --now — останавливает сервис и отключает автозагрузку
  • remove --purge — удаляет пакеты и их конфигурационные файлы
  • autoremove — удаляет неиспользуемые зависимости

7.2 Удаление данных базы данных

⚠️ Внимание: Следующая команда безвозвратно удаляет ВСЕ ваши базы данных. Сделайте резервную копию, если нужно что-то сохранить.

sudo rm -rf /var/lib/mysql /etc/mysql

Что делает:

  • /var/lib/mysql — директория с данными всех баз данных
  • /etc/mysql — конфигурационные файлы MariaDB

7.3 Проверка удаления

apt-cache policy mariadb-server

Ожидаемый вывод:

mariadb-server:
  Installed: (none)
  Candidate: 1:11.8.6-0+deb13u1

8. ⚠️ Решение типичных проблем

8.1 Ошибка: Can’t connect to local MySQL server through socket

Симптом: При попытке подключиться к MariaDB появляется ошибка:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

Причина: Сервис MariaDB не запущен.

Решение: Запустите сервис:

sudo systemctl start mariadb
sudo systemctl enable mariadb

8.2 Ошибка: Access denied for user ‘root’@’localhost’

Симптом: Не удаётся войти под root.

Причина: Вы не используете sudo при подключении (если выбрали unix_socket) или забыли пароль.

Решение 1 (если включён unix_socket):

sudo mariadb

Решение 2 (сброс пароля root): Остановите MariaDB, запустите в безопасном режиме и сбросьте пароль:

sudo systemctl stop mariadb
sudo mysqld_safe --skip-grant-tables &
sudo mariadb

Внутри MariaDB:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'новый_пароль';
EXIT;

Затем перезапустите MariaDB:

sudo systemctl restart mariadb

8.3 MariaDB не запускается после изменения конфигурации

Симптом: После редактирования /etc/mysql/mariadb.conf.d/50-server.cnf сервис не запускается.

Решение: Проверьте синтаксис конфигурационного файла:

sudo mysqld --verbose --help

Или посмотрите логи:

sudo journalctl -u mariadb -n 50 --no-pager

8.4 Ошибка: mariadb-secure-installation: command not found

Симптом: Команда sudo mariadb-secure-installation не найдена.

Причина: В очень старых версиях MariaDB используется другое имя.

Решение: Используйте альтернативную команду:

sudo mysql_secure_installation

9. 📝 Чек-лист: всё готово к работе

  • [ ] MariaDB установлен: mariadb --version показывает версию
  • [ ] Сервис активен: systemctl is-active mariadb возвращает active
  • [ ] Скрипт безопасности выполнен: sudo mariadb-secure-installation
  • [ ] Можете подключиться: sudo mariadb открывает SQL-промпт
  • [ ] Можете создать базу данных: CREATE DATABASE testdb;
  • [ ] После перезагрузки сервера MariaDB запускается автоматически

Заключение

Вы успешно установили MariaDB на Debian. Теперь у вас есть полноценная система управления базами данных, совместимая с MySQL. Вы выполнили начальную настройку безопасности, научились управлять сервисом и можете подключаться к базе данных из командной строки.

Что дальше:

  • Настройте базу данных для вашего приложения (WordPress, Nextcloud, Laravel)
  • Изучите официальную документацию MariaDB
  • Настройте резервное копирование баз данных с помощью mariadb-dump
  • Для работы с базами данных через веб-интерфейс установите phpMyAdmin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *