August 21, 2026 · by Alex M.
MariaDB — один из самых популярных движков реляционных баз данных с открытым исходным кодом. Полностью совместимый с MySQL, он стал стандартом де-факто на большинстве современных Linux-дистрибутивов. Если у вас есть VPS SSD или VPS NVMe и вы планируете запускать веб-приложения, CMS или интернет-магазины — правильная установка MariaDB является ключевым шагом.
В этом руководстве мы разберём установку, защиту, настройку и оптимизацию MariaDB на Ubuntu 22.04 LTS с нуля.
MariaDB появился как форк MySQL после его приобретения Oracle. Основные преимущества:
WordPress, Joomla, Magento, Laravel и большинство других платформ работают с MariaDB без дополнительной настройки.
Перед началом убедитесь, что у вас есть:
sudoОбновите систему перед установкой:
sudo apt update && sudo apt upgrade -y
На Ubuntu 22.04 MariaDB доступен прямо из официальных репозиториев:
sudo apt install mariadb-server mariadb-client -y
Запустите сервис и добавьте его в автозагрузку:
sudo systemctl start mariadb
sudo systemctl enable mariadb
Проверьте статус:
sudo systemctl status mariadb
В выводе должно быть Active: active (running).
Сразу после установки запустите скрипт безопасности. Он удаляет анонимных пользователей, отключает удалённый вход root и удаляет тестовые базы данных:
sudo mysql_secure_installation
Рекомендуемые ответы на каждый вопрос:
| Вопрос | Рекомендуемый ответ |
|---|---|
| Switch to unix_socket authentication? | N (если нужна парольная аутентификация) |
| Change the root password? | Y — задайте надёжный пароль |
| Remove anonymous users? | Y |
| Disallow root login remotely? | Y |
| Remove test database? | Y |
| Reload privilege tables? | Y |
⚠️ Важно: Для веб-приложений используйте отдельного пользователя БД, а не root.
После защиты подключитесь к консоли MariaDB:
sudo mysql -u root -p
Или через socket-аутентификацию (по умолчанию на Ubuntu):
sudo mysql
Вы увидите приглашение MariaDB [(none)]>.
Никогда не используйте аккаунт root для приложений. Создайте отдельного пользователя:
-- Создайте базу данных
CREATE DATABASE myapp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- Создайте пользователя
CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'НадёжныйПароль123!';
-- Назначьте привилегии
GRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'localhost';
-- Примените изменения
FLUSH PRIVILEGES;
Всегда используйте utf8mb4 вместо utf8 — он поддерживает полный Unicode, включая эмодзи.
Основной файл конфигурации находится по адресу /etc/mysql/mariadb.conf.d/50-server.cnf. Откройте его:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
[mysqld]
# Объём памяти для кэша InnoDB (50–70% доступной RAM)
innodb_buffer_pool_size = 512M
# Количество экземпляров пула (1 на каждый 1 ГБ)
innodb_buffer_pool_instances = 1
# Размер лога транзакций — чем больше, тем быстрее запись
innodb_log_file_size = 128M
# Кэш повторяющихся запросов
query_cache_type = 1
query_cache_size = 64M
query_cache_limit = 2M
# Максимальное количество одновременных подключений
max_connections = 150
# Кэш потоков
thread_cache_size = 8
# Таймаут неактивных подключений
wait_timeout = 300
interactive_timeout = 300
# Кодировка по умолчанию
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
💡 Совет: На VPS с 2 ГБ RAM установите
innodb_buffer_pool_size = 512M. На VPS с 4 ГБ — можно увеличить до 1–2 ГБ.
После изменений перезапустите MariaDB:
sudo systemctl restart mariadb
По умолчанию MariaDB слушает только 127.0.0.1. Для удалённого доступа измените конфигурацию:
bind-address = 0.0.0.0
Затем создайте пользователя с доступом с конкретного IP:
CREATE USER 'remote_user'@'192.168.1.100' IDENTIFIED BY 'НадёжныйПароль!';
GRANT ALL PRIVILEGES ON myapp_db.* TO 'remote_user'@'192.168.1.100';
FLUSH PRIVILEGES;
Разрешите порт 3306 только для доверенных IP через UFW:
sudo ufw allow from 192.168.1.100 to any port 3306
Подробнее о настройке брандмауэра на VPS читайте в блоге CLIQHOST.
Резервные копии критически важны. Создайте простой скрипт на базе mysqldump:
sudo nano /usr/local/bin/backup-mariadb.sh
#!/bin/bash
DATE=$(date +%Y-%m-%d_%H-%M)
BACKUP_DIR="/var/backups/mariadb"
DB_USER="root"
DB_PASS="ваш_root_пароль"
mkdir -p $BACKUP_DIR
mysqldump -u $DB_USER -p$DB_PASS --all-databases | gzip > $BACKUP_DIR/all-databases_$DATE.sql.gz
# Удаление бэкапов старше 7 дней
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete
echo "Резервная копия создана: $BACKUP_DIR/all-databases_$DATE.sql.gz"
sudo chmod +x /usr/local/bin/backup-mariadb.sh
Добавьте в crontab для ежедневного запуска в 02:00:
sudo crontab -e
0 2 * * * /usr/local/bin/backup-mariadb.sh >> /var/log/mariadb-backup.log 2>&1
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW VARIABLES LIKE 'max_connections';
SHOW STATUS LIKE 'Threads_connected';
Включите лог медленных запросов в конфигурации:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-queries.log
long_query_time = 2
Анализируйте лог с помощью:
mysqldumpslow -s t /var/log/mysql/slow-queries.log | head -20
SHOW ENGINE INNODB STATUS\G
MariaDB не запускается после изменений конфигурации:
sudo journalctl -u mariadb -n 50
Проверьте синтаксические ошибки в файле .cnf.
Ошибка «Too many connections»: Увеличьте max_connections и убедитесь, что приложение корректно закрывает соединения.
Маленький buffer pool: Если innodb_buffer_pool_reads велико относительно innodb_buffer_pool_read_requests — увеличьте innodb_buffer_pool_size.
MariaDB — надёжный и производительный движок баз данных, идеально подходящий для любого современного веб-приложения. Правильная установка, немедленная защита и оптимизация параметров InnoDB — это разница между медленным сервером и системой, которая уверенно справляется с нагрузкой.
Если вам нужна прочная основа для ваших проектов, VPS NVMe от CLIQHOST обеспечивает исключительную скорость I/O — именно то, что нужно MariaDB для максимальной производительности. Если вы предпочитаете управляемую среду без необходимости самостоятельной настройки, наша команда администрирования серверов готова помочь.
Есть вопросы или нужна помощь с выбором плана? Свяжитесь с нами — мы ответим быстро.
Реальные отзывы клиентов, которые доверяют CLIQHOST за производительность, надёжность и профессиональную техническую поддержку.
"Перенесли интернет-магазин с зарубежного хостинга — разница огромная: страницы открываются мгновенно, а поддержка отвечает за минуты, на румынском."
"Перенесли 12 клиентских сайтов на CLIQHOST. Бесплатная миграция, нулевой даунтайм, а настройка cPanel — именно то, что нужно нашей команде. Очень рекомендую."
"Наш VPS NVMe спокойно держит пики трафика. Полный root, локальный дата-центр и оплата в MDL — всё, что мы хотели от провайдера."