По мере развития онлайн-бизнеса, владельцам сайтов всё чаще требуется хранение данных: например, каталога товаров, прайс-листов, истории заказов, контактов компании и многих других. Для этого используются базы данных. Для работы с ними существует специализированное ПО — системы управления базами данных, или СУБД. Об одной из них — MariaDB — мы расскажем в этой статье.
Что такое MariaDB
MariaDB — реляционная система управления базами данных (СУБД), которая является форком MySQL. Она распространяется свободно и имеет открытый исходный код.
СУБД включает в себя:
- поддержку стандартного языка запросов SQL,
- транзакции (ACID),
- хранимые процедуры и функции,
- триггеры и события,
- представления (views),
- полнотекстовый поиск,
- репликацию по моделям «мастер-слейв» и «мастер-мастер»,
- кластеризацию через Galera Cluster,
- шифрование данных.
MariaDB имеет следующие технические характеристики:
| Тип | Реляционная СУБД (РСУБД) |
|---|---|
| Язык запросов | SQL |
| Лицензия | GPL (свободное и открытое ПО) |
| Совместимые ОС | Linux, Windows, macOS, FreeBSD |
| Порт по умолчанию | 3306.0 |
Чем отличается MariaDB от MySQL
На первый взгляд MariaDB и MySQL могут показаться идентичными: обе СУБД работают с языком запросов SQL и имеют схожий функционал. Однако между ними существует ряд отличий.
| Характеристика | MariaDB | MySQL |
|---|---|---|
| Движки хранения | Aria, ColumnStore, MyRocks, Spider, MyISAM и InnoDB | InnoDB, MyISAM |
| Пул соединений | Встроенный | Только в версии корпоративного уровня |
| Временные таблицы | Aria (быстрее) | MyISAM (медленнее) |
| Поддержка JSON | Начиная с версии 10.2. Реализует JSON в качестве псевдонима типа LONGTEXT |
Начиная с версии 5.7. Реализует нативный бинарный тип данных JSON |
| Репликация | Мульти-мастер, Galera Cluster | Групповая |
Зачастую облачные провайдеры предоставляют готовые услуги с предустановленной СУБД. Например, в Рег.облаке можно заказать кластер базы данных с MySQL — так вы сможете делегировать администрирование инфраструктуры и сосредоточиться на работе с базами данных.
Ниже мы разберем процедуру установки и настройки MariaDB.

Установка MariaDB
Чтобы установить MariaDB:
- Подключитесь к серверу по протоколу SSH.
- Обновите пакеты:
|
1 |
sudo apt update && sudo apt upgrade |
- Установите MariaDB из репозитория Ubuntu, выполнив команду:
|
1 |
sudo apt install mariadb-server mariadb-client -y |
- Проверьте состояние службы MariaDB:
|
1 |
systemctl status mariadb |
Если установка прошла корректно, вывод будет иметь следующий вид:
|
1 2 3 4 5 6 7 8 9 10 11 |
● mariadb.service - MariaDB 12.2.2 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2026-04-04 10:00:00 MSK; 1h ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 1234 (mysqld) Status: "Taking your SQL requests..." Tasks: 31 (limit: 4617) Memory: 150.0M CGroup: /system.slice/mariadb.service └─1234 /usr/sbin/mysqld |
- Добавьте СУБД в автозагрузку:
|
1 |
sudo systemctl enable mariadb |
- Запустите скрипт настройки безопасности сервера СУБД:
|
1 |
sudo mysql_secure_installation |
Затем ответьте на вопросы:
| Вопрос или действие | Ответ или действие |
|---|---|
| Enter current password for root (enter for none): | Нажмите Enter |
| Switch to unix_socket authentication? | No (для локальной работы) |
| Change root password? | Yes. После этого введите пароль пользователя root |
| Disallow root login remotely? | Yes |
| Удалить анонимных пользователей? | Yes |
| Запретить root-доступ из удаленных систем? | Yes |
| Удалить тестовую базу данных? | Yes |
| Перезагрузить таблицы привилегий? | Yes |
Настройка аутентификации
Чтобы настроить аутентификацию пользователей:
- Подключитесь к серверу по протоколу SSH.
- Выполните команду:
|
1 |
sudo mariadb -e "SELECT user,host,plugin FROM mysql.user;" |
Вывод будет иметь следующий вид:
|
1 2 3 4 5 6 7 |
+-------------+-----------+-----------------------+ | user | host | plugin | +-------------+-----------+-----------------------+ | mariadb.sys | localhost | mysql_native_password | | root | localhost | mysql_native_password | | mysql | localhost | mysql_native_password | +-------------+-----------+-----------------------+ |
Если в строке «root» отображается значение mysql_native_password, то при входе необходимо вводить пароль суперпользователя.
- Проверьте работу аутентификации. Для этого подключитесь к консоли MariaDB:
|
1 |
mysql -u root -p |
После ввода команды отобразится поле для ввода пароля.
Создание базы данных
Чтобы создать базу данных в MariaDB:
- Подключитесь к серверу по протоколу SSH.
- Запустите консоль MariaDB:
|
1 |
mariadb -u root -p |
- Создайте базу данных:
|
1 |
CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; |
Вместо db_name укажите название вашей базы данных.
- Создайте пользователя баз данных:
|
1 |
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; |
Где:
- username — имя пользователя баз данных,
- password — пароль пользователя баз данных.
- Выдайте пользователю привилегии на базу данных:
|
1 |
GRANT ALL PRIVILEGES ON db_name.* TO 'username'@'localhost'; |
Где:
- db_name — название базы данных;
- username — имя пользователя баз данных.
- Примените изменения:
|
1 |
FLUSH PRIVILEGES; |
Затем закройте консоль MariaDB:
|
1 |
EXIT; |
- Подключитесь к консоли под новым пользователем:
|
1 |
mariadb -u username -p |
Вместо username укажите имя созданного пользователя базы данных.

Настройка привязки к сетевому интерфейсу
Чтобы настроить привязку к сетевому интерфейсу:
- Подключитесь к серверу по протоколу SSH.
- Откройте конфигурационный файл MariaDB:
|
1 |
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf |
- В строке
bind-addressзамените IP-адрес на0.0.0.0:
|
1 |
bind-address = 0.0.0.0 |
Важно: значение 0.0.0.0 откроет доступ для всех интерфейсов. Если у вас есть интерфейс в приватной сети, предпочтительнее указать IP-адрес конкретного сервера — так безопаснее.
Затем сохраните изменения и закройте файл.
- Перезапустите MariaDB:
|
1 |
sudo systemctl restart mariadb |
Настройка брандмауэра
- Подключитесь к серверу по протоколу SSH.
- Обновите пакеты:
|
1 |
sudo apt update && sudo apt upgrade |
- Установите UFW:
|
1 |
sudo apt install ufw -y |
- Выполните базовую настройку. Для этого поочередно введите команды:
|
1 |
sudo ufw default deny incoming |
|
1 |
sudo ufw default allow outgoing |
- Разрешите SSH-подключения:
|
1 |
sudo ufw allow ssh |
- Откройте доступ к порту MariaDB:
|
1 |
sudo ufw allow 3306/tcp |
- Добавьте правило для защиты от bruteforce-атак:
|
1 |
sudo ufw limit 3306/tcp |
- Активируйте фаервол:
|
1 |
sudo ufw enable |
- Проверьте работу прописанных правил:
|
1 |
sudo ufw status verbose |
Если настройка прошла корректно, вывод будет иметь следующий вид:
|
1 2 3 4 5 6 7 8 9 10 |
Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere 3306/tcp LIMIT IN Anywhere 3306/tcp (v6) LIMIT IN Anywhere (v6) |

Команды для работы с MariaDB
Запуск консоли и выход из нее
- Запуск консоли от имени конкретного пользователя:
|
1 |
mariadb -u username -p |
Вместо username укажите имя пользователя.
- Удаленное подключение к MariaDB:
|
1 |
mariadb -u username -h 123.123.123.123 -p |
Здесь:
- username — имя пользователя,
- 123.123.123.123 — IP-адрес сервера баз данных.
- Выйти из консоли MariaDB:
|
1 |
EXIT; |
Работа с базами данных
- Показать все базы данных:
|
1 |
SHOW DATABASES; |
- Создать базу данных с кодировкой UTF8:
|
1 |
CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; |
Вместо db_name укажите название базы данных.
- Выбрать базу данных для работы:
|
1 |
USE db_name; |
Вместо db_name укажите название базы данных.
- Показать текущую базу данных:
|
1 |
SELECT DATABASE(); |
В выводе отобразится имя базы данных, к которой вы подключены.
- Удалить базу данных:
|
1 |
DROP DATABASE db_name; |
Вместо db_name укажите название базы данных.
Работа с таблицами
- Показать все таблицы в текущей базе данных:
|
1 |
SHOW TABLES; |
- Показать структуру таблицы:
|
1 |
DESCRIBE table_name; |
или
|
1 |
SHOW COLUMNS FROM table_name; |
Вместо table_name укажите название таблицы.
- Создать таблицу:
|
1 2 3 4 5 |
CREATE TABLE table_name ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); |
Вместо table_name укажите название новой таблицы.
4. Удалить таблицу:
|
1 |
DROP TABLE table_name; |
Вместо table_name укажите название таблицы.
- Очистить таблицу:
|
1 |
TRUNCATE TABLE table_name; |
Вместо table_name укажите название таблицы.

Работа с пользователями
- Показать список всех пользователей и хостов, с которых они могут подключаться:
|
1 |
SELECT user, host FROM mysql.user; |
- Создать пользователя:
|
1 |
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; |
Здесь:
- username — имя пользователя баз данных,
- password — пароль пользователя баз данных.
- Удалить пользователя:
|
1 |
DROP USER 'username'@'localhost'; |
Вместо username укажите имя пользователя базы данных.
- Изменить пароль пользователя:
|
1 |
ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_password'; |
Здесь:
- username — имя пользователя баз данных,
- new_password — пароль пользователя баз данных.
- Сменить имя пользователя:
|
1 |
RENAME USER 'username'@'localhost' TO 'new_username'@'localhost'; |
Здесь:
- username — прежнее имя пользователя,
- new_username — новое имя пользователя.
Работа с привилегиями
- Назначить все привилегии пользователю:
|
1 |
GRANT ALL PRIVILEGES ON db_name.* TO 'username'@'localhost'; |
Здесь:
- db_name — название базы данных,
- username — имя пользователя баз данных.
- Дать конкретные права пользователю БД:
|
1 |
GRANT SELECT, INSERT, UPDATE, DELETE ON db_name.* TO 'username'@'localhost'; |
Здесь:
- db_name — название базы данных,
- username — имя пользователя баз данных.
- Дать права на все базы данных сервера:
|
1 |
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost'; |
Вместо username укажите имя пользователя баз данных.
- Забрать права на базу данных:
|
1 |
REVOKE ALL PRIVILEGES ON db_name.* FROM 'username'@'localhost'; |
Здесь:
- db_name — название базы данных,
- username — имя пользователя баз данных.
- Проверить права пользователя:
|
1 |
SHOW GRANTS FOR 'username'@'localhost'; |
Вместо username укажите имя пользователя базы данных.
- Подтвердить изменение прав:
|
1 |
FLUSH PRIVILEGES; |
Восстановление базы данных из дампа
- Резервное копирование всех баз данных на сервере:
|
1 |
sudo mariadb-dump --all-databases > backup_all.sql |
Вместо backup_all.sql укажите название дампа БД.
- Создать резервную копию конкретной базы данных:
|
1 |
sudo mariadb-dump db_name > db_name.sql |
Здесь:
- db_name — название базы данных,
- db_name.sql — название дампа базы данных.
- Создать и заархивировать резервную копию базы данных:
|
1 |
sudo mariadb-dump db_name | gzip > db_name.sql.gz |
Здесь:
- db_name — название базы данных,
- db_name.sql.gz — название архива с дампом БД.
- Восстановить базу данных из дампа:
|
1 |
sudo mariadb db_name < db_name.sql |
Здесь:
- db_name — название базы данных,
- db_name.sql — название дампа базы данных.
- Восстановить базу данных из архива:
|
1 |
gunzip < db_name.sql.gz | sudo mariadb db_name |
Здесь:
- db_name.sql.gz — название архива с дампом БД,
- db_name — название базы данных.
- Восстановить все базы данных из дампа:
|
1 |
sudo mariadb < backup_all.sql |
Вместо backup_all.sql укажите название дампа БД.
Развернуть сервер баз данных можно не только на собственном оборудовании. В Рег.облаке доступны облачные решения, которые подходят не только для сайтов и приложений, но и для работы с базами данных.