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.x | trixie/main | Новые проекты, нужна свежая версия |
| Debian 12 (Bookworm) | 10.11.x | bookworm/main | Стабильные продакшн-системы |
| Debian 11 (Bullseye) | 10.5.x | bullseye-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