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 за производительность, надёжность и профессиональную техническую поддержку.
"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."