Как поднять свою базу данных MySQL с помощью MariaDB

5 минут чтения
Средний рейтинг статьи — 4.9

MariaDB — это популярная реляционная база данных с открытым исходным кодом, являющаяся форком MySQL. Она полностью совместима с MySQL и предлагает множество улучшений в производительности и безопасности. В этой статье мы разберём, как установить и запустить MariaDB на сервере, а также выполнить базовую настройку.

Зачем использовать MariaDB вместо MySQL?

MariaDB была создана в 2009 году после того, как Oracle приобрела MySQL. Чтобы обеспечить открытость и свободное развитие проекта, основатели MySQL начали разрабатывать MariaDB. Причины выбрать MariaDB:

  • Полная совместимость с MySQL (включая синтаксис и API);
  • Активное сообщество и регулярные обновления;
  • Улучшенная производительность для некоторых типов запросов;
  • Дополнительные возможности: новые хранилища, оптимизаторы и функции безопасности.

Установка MariaDB

Ubuntu/Debian

sudo apt update
sudo apt install mariadb-server

CentOS/RHEL

sudo dnf install mariadb-server

Arch Linux

sudo pacman -S mariadb

Запуск и включение MariaDB

После установки необходимо запустить службу MariaDB и включить её автозапуск:

sudo systemctl start mariadb
sudo systemctl enable mariadb

Настройка безопасности

MariaDB поставляется с утилитой для быстрой настройки базовой безопасности:

sudo mysql_secure_installation

Вы сможете задать root-пароль, отключить удалённый доступ, удалить тестовую базу и т.д.

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

sudo mariadb -u root -p

После ввода пароля вы попадёте в консоль управления базой данных.

Создание базы данных и пользователя

CREATE DATABASE myapp_db;
CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'localhost';
FLUSH PRIVILEGES;

Удалённое подключение к MariaDB

По умолчанию MariaDB принимает подключения только с локальной машины. Чтобы разрешить удалённый доступ, нужно внести изменения в конфигурацию и убедиться, что фаервол пропускает соединения.

Разрешение подключений в конфиге

Откройте файл конфигурации:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Найдите строку:

bind-address = 127.0.0.1

И измените ее на:

bind-address = 0.0.0.0

Это разрешит прослушивание всех внешних IP-адресов. Если хотите ограничить доступ, укажите конкретный IP.

Сохраните файл и перезапустите MariaDB:

sudo systemctl restart mariadb

Создание пользователя с удалённым доступом

Если вы ещё не создавали пользователя с доступом снаружи:

CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON myappdb.* TO 'remoteuser'@'%';
FLUSH PRIVILEGES;

Символ % означает «любой хост». Для повышения безопасности можно указать конкретный IP, например 'remoteuser'@'203.0.113.5'.

Открытие порта 3306 в фаерволе

Если используете UFW:

sudo ufw allow 3306/tcp

Подключение с другой машины

Теперь можно подключаться к базе с внешнего сервера:

mysql -u remoteuser -h 203.0.113.10 -p

Где 203.0.113.10 — это IP-адрес сервера с MariaDB.

Безопасность при удалённом подключении

Удалённый доступ к MariaDB удобен, но может представлять угрозу безопасности. Чтобы минимизировать риски:

  • Вместо открытия порта 3306 в интернет, создайте безопасный туннель через SSH:
ssh -L 3307:localhost:3306 user@203.0.113.10

После этого подключайтесь к MariaDB через локальный порт:

mysql -u remoteuser -h 127.0.0.1 -P 3307 -p

Такой подход не требует открытого порта и защищает данные от перехвата.

  • Указывайте конкретные IP-адреса! Вместо '%' в SQL-правах указывайте точный IP клиента:
CREATE USER 'remoteuser'@'203.0.113.50' IDENTIFIED BY 'strongpassword';
  • Отключайте root-доступ снаружи.

Никогда не предоставляйте удалённый доступ пользователю root. Создавайте отдельные аккаунты с нужными правами.

  • Следите за логами

Логи MariaDB помогут обнаружить подозрительную активность:

sudo tail -f /var/log/mysql/error.log

Проверка состояния MariaDB

Проверить, работает ли MariaDB, можно с помощью команды:

sudo systemctl status mariadb

Или через сокет:

sudo mysqladmin version

Автоматическое резервное копирование (по желанию)

Создадим cron-задачу для ежедневного дампа:

echo "0 3 * * * mysqldump -u root -p'yourpassword' myapp_db > /var/backups/myapp_db_$(date +\%F).sql" | sudo tee -a /etc/crontab

Не забудьте заменить _yourpassword_ на настоящий пароль и защитить права доступа к crontab.

Заключение

MariaDB — отличная альтернатива MySQL, особенно если вы ищете решение с открытым исходным кодом и активным развитием. Благодаря полной совместимости, перейти на MariaDB с MySQL несложно, а настройка новой базы занимает всего несколько минут. Это отличный выбор как для продакшн-серверов, так и для локальной разработки.

5 минут чтения
Средний рейтинг статьи — 4.9

Настроить мониторинг за 30 секунд

Надежные оповещения о даунтаймах. Без ложных срабатываний