Настройка mariadb windows 10

Как установить MariaDB 7.4 в Windows

О том, что такое MariaDB и чем она отличается от MySQL смотрите в статье «MariaDB для Windows».

Особенности установки MariaDB 7.4 в Windows

Особенность данной версии (на момент написания она является самой новой) в том, что вместе с ней не поставляются необходимые файлы баз данных.

Дело в том, что все свои данные (например, пользователи и их пароли, метаинформацию о базах данных и таблицах, данные статистики), СУБД MariaDB хранит также в одной из своих базе данных. То есть для работы MariaDB нужно чтобы существовала хотя бы база данных со служебными таблицами.

Ранее архив MariaDB поставлялся с папкой data в которой присутствовали необходимые файлы. Но начиная с версии MariaDB 7.4 эта папка пустая.

Получается, мы не можем запустить службу MariaDB, пока не будут созданы нужные файлы. Для создания этих файлов используется так называемый процесс «инициализации».

В последних версиях MySQL всё аналогично — для работы требуется служебная база данных, но она не поставляется с программой. Для создания нужных файлов достаточно запустить mysqld с опцией —initialize-insecure.

И хотя MariaDB должна быть полностью совместимой с MySQL, в ней опция —initialize-insecure не работает!

mysql_install_db.exe

Для инициализации СУБД в MariaDB нужно использовать поставляющуюся в комплекте программу mysql_install_db.exe. Причём она не обращает внимание на файл настроек my.cnf! То есть даже если в этом файле вы установили значение datadir, при запуске команды mysql_install_db.exe всё равно нужно явно указать путь до папки с базами данных:

У меня исполнимые файлы СУБД находятся в папке C:\Server\bin\mariadb, а базы данных должны размещаться в папке C:\Server\data\DB\data\, тогда моя команда следующая:

Когда необходимые файлы созданы, можно выполнить установку и запуск службы как обычно:

Программа поддерживает следующие опции:

Параметр Описание
-? , — help Показать справку и выйти
-d , — datadir=name Директория новой базы данных
-S , — service=name Имя службы Windows
-p , — password=name Пароль пользователя root
-P , — port=# mysqld порт
-W , — socket=name имя именной трубы (pipe)
-D , — default-user Создать дефолтного пользователя
-R , — allow-remote-root-access Разрешить удалённый доступ из сети для пользователя root
-N , — skip-networking Не использовать TCP подключения, вместо них использовать трубу (pipe)
-i , — innodb-page-size Размер страницы Innodb

Помните: для создания сервиса Windows, mysql_install_db.exe должна быть запущена пользователем с полными правами администратора. Для простой инициализации баз данных права администратора не требуются.

Также обратите внимание, что в указанной папке БД будет создан новый файл конфигурации. Получается, если вы хотите, чтобы MariaDB учитывала настройки из этого файла (если вы ещё не создали свой собственный конфигурационный файл), то вам нужно перенести его в корневую папку MariaDB.

Следующие примеры взяты из официальной документации — сам я предпочитаю выполнять установку с помощью mysqld как это показано выше, и конфигурационный файл я создаю внучную.

Команда для создания необходимых баз данных в директории C:\db, регистрации автозапуска службы Windows с именем «MyDB» и установки пароля root на ‘secret‘:

Для запуска службы из командной строки:

Удаление службы и баз данных

Если вы запустили вашу СУБД как службу, то для полного удаления из командной строки используйте команды:

MariaDB для Windows

Что лучше MariaDB или MySQL?

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

Напомню, что у MySQL есть бесплатная Community версия, а также есть версия с платным кодом. Что касается MariaDB, то авторы реализовали все возможности MySQL в виде открытого и бесплатного кода при этом сохранив совместимость с базами данных, созданными в MySQL.

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

В общем, MariaDB широко используется и её можно считать проверенной и надёжной СУБД, поскольку в настоящее время она действительно широко распространена.

Что выбрать, MariaDB или MySQL, переходить ли с MySQL на MariaDB? На самом деле, для домашнего компьютера особой разницы нет. Вы можете выбрать любую из этих СУБД. Я упомянул, что в MariaDB реализованы платные функции MySQL, кроме того, в ней добавлены новые движки хранения данных — ещё больше подробностей и отличий в этой статье. Но для подавляющего большинства пользователей эти функции являются экзотическими, либо просто не применимыми, поскольку рассчитаны для оптимизации супер тяжёлой нагрузки. Поэтому, выбор между MariaDB или MySQL на локальном веб-сервере это исключительно дело вкуса.

Скачать MariaDB для Windows

MariaDB работает на разных операционных системах, в том числе на Windows. Для Windows имеются официальные бинарные файлы. Чтобы скачать последнюю версию, перейдите по ссылке https://downloads.mariadb.org/mariadb/:

На этой странице вы увидите много разных серий, но если на это нет специфичных причин, просто скачайте версию из последней серии — для этого нажмите зелёную кнопку.

Версии MariaDB под Windows содержат в названии win, всего для скачивания доступно четыре файла. Они различаются битностью:

  • x64 — 64-битная версия
  • 32 — 32-битная версия

И способом развёртывания:

  • .zip — архив с MariaDB
  • .msi — установщик MariaDB

Битность выберите в соответствии с вашей операционной системой. Что касается скачивать архив или установщик, то я бы рекомендовал первый вариант, поскольку я размещаю исполнимые файлы и файлы данных в разных папках — это удобно при создании резервных копий. Также можно, например, вынести базы данных на отдельный диск.

Вы можете ввести данные о себе, либо просто нажать кнопку «No thanks, just take me to the download» для начала загрузки:

Как установить MariaDB в Windows

Я покажу на конкретном примере — у вас, может быть, будет другое расположение СУБД и баз данных, поэтому вам нужно будет подредактировать команды — заменив пути на свои.

Итак, я хочу, чтобы исполнимые файлы были размещены в папке C:\Server\bin\mariadb, для этого я распаковываю скаченный архив и папку C:\Server\bin\mariadb-10.3.9-winx64\ я переименовываю в C:\Server\bin\mariadb.

Теперь по умолчанию мои базы данных размещались бы в папке C:\Server\bin\mariadb\data\, но я не хочу размещать базы данных в том же каталоге, что и исполнимые файлы — так я могу делать резервные копии исполнимых файлов или резервные копии баз данных независимо друг от друга. Поэтому я в папке C:\Server\data\DB\ создаю новую подпапку data для файлов баз данных. То есть получается была создана папка C:\Server\data\DB\data.

В папке с СУБД (у меня это C:\Server\bin\mariadb\) создайте файл my.cnf и скопируйте в него:

Обратите внимание, что у меня путь до файлов баз данных c:/Server/data/DB/data/, если у вас другое значение, то вставьте его.

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

Установка и базовая оптимизация MariaDB в CentOS

В этой статье я рассмотрю особенности установки, базовой настройки и оптимизации сервера баз данных MariaDB. Передо мной стояла задача установитьc MariaDB и провести базовую настройку на Linux CentOS 7. Так как это актуальный вопрос, я надеюсь статья будет вам полезна. В конце статьи я приведу несколько примеров конфигурационных файлов, а вы с помощью их сможете подобрать параметры под свой сервер.

Установка MariaDB в CentOS

С недавнего времени MariaDB входит в стандартный для CentOS 7 репозиторий base, но в данном репозитории содержится версия 5.5. Эта версия уже не актуальна, в ней есть проблемы с производительностью и нет полнотекстового поиска в InnoDB. На момент написания статьи актуальная версия MariaDB — 10.4, поэтому подключившись к нашему Linux серверу по ssh мы для начала подключим репозиторий разработчика mariadb.org и после запустим установку сервера БД.

Я привык работать с файлами через редактор nano, устанавливаем его через yum:

yum install nano -y

И открываем файл репозитория для редактирования:

И добавляем туда следующую информацию:

Сохраняем файл и запускаем установку:

yum install MariaDB-server MariaDB-client -y

Установка окончена, теперь нужно добавить сервис в автозагрузку и запустить:

systemctl start mariadb
systemctl enable mariadb

Проверяем статус сервиса:

systemctl status mariadb

Сервис mariadb запущен и работает, значит можно продолжить настройку.

Защита и безопасность MariaDB

После того, как мы установили и запустили MariaDB, можем перейти к настройкам безопасности. Запускаем встроенный сценарий:

Данный сценарий подробно описывает каждый шаг и подробно останавливаться на каждом из них мы не будем. Сначала он запросит root-пароль, но после начальной установки его нет и поэтому мы нажимаем enter и на следующем этапе задаем сложный пароль (от этого зависит насколько безопасным, будет ваш сервер). После можно до конца выполнения сценария нажимать «enter», в процессе будут удалены анонимные пользователи, удаленный root-логин, а также тестовые таблицы и будут перезагружены привилегии.

Для подключения к mariadb серверу нужно создать правила в Linux файерволе с помощью iptables:

iptables -I INPUT -p tcp —dport 3306 -m state —state NEW,ESTABLISHED -j ACCEPT
iptables-save > /etc/sysconfig/iptables

Опционально, можно разрешить исходящие подключения к другим базам MariaDB.

iptables -I OUTPUT -p tcp —sport 3306 -m state —state ESTABLISHED -j ACCEPT

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

Нужно убедиться, что установка MariaDB выполнена успешно.

Подключимся к серверу БД с помощью встроенного инструмента mysqladmin:

Команда выдаст результат:

Это означает, что установка MariaDB выполнена успешно, база данных работает и доступна.

Можно подключиться к консоли сервера maridb для интерактивного выполнения sql команд:

Настройка конфигурационного файла MariaDB

Обычно после установки MariaDB я добавляю в конфигурационный файл /etc/my.cnf свою стандартную конфигурацию, которая работает на большем количестве серверов и пока проблем с базами не возникало. Очистим файл my.cnf и добавим в него следующее:

Для общего понимания разберем основные параметры конфигурационного файла my.cnf:

  • datadir — каталог для хранения файлов БД;
  • tmpdir – каталог для хранения временных файлов;
  • skip-name-resolve – отключает DNS резолвинг;
  • max_allowed_packet — максимальный размер пакета. Если в БД используются поля blob, нужно выставлять значение не менее чем самое большое поле;
  • max_connections — максимальное количество открытых соединений, параметр определяет, сколько клиентов одновременно могут работать с сервером БД;
  • Секция # Cache parameters — все что связано с кешем запросов, устанавливать слишком высокие значения не рекомендуется, так как потребление ресурсов сервером БД станет расти;
  • Секция # InnoDB parameters — все что связано с таблицами innodb;
  • innodb_buffer_pool_size — буфер кеша для данных и индексов, если на сервере размещено 1-2 проекта, выставляйте значение равное 70-80% доступной оперативной памяти;
  • innodb_flush_method — для Linux ставим значение O_DIRECT , это отключит кеширование на уровне ОС;
  • innodb_flush_log_at_trx_commit — этот параметр влияет на скорость записи innoDB таблиц. Отнеситесь серьезно к данному параметру, выставляя значение 0, вы получаете большую производительность, но риск потери данных возрастает. Я предпочитаю устанавливать значение 2, так как большой прирост в работе сервера БД я не замечал, а безопасность превыше всего.

Оптимизация и тюнинг производительности MariaDB

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

Установим скрипт Tuning-Primer.sh:

yum install bc net-tools -y

chmod +x tuning-primer.sh

После выполнения, скрипт выдаст вам всю информацию, с которой нужно ознакомиться. Важные моменты будут выделены красным цветом и их вам по возможности нужно будет исправить.

Например, у меня скрипт сразу же выдал, что используемое количество коннектов гораздо меньше, чем я выставил:

Данный параметр можно изменить, как и в файле my.cnf так и через консоль, я убавил до 10 и скрипт меня похвалил:

С помощью подобных манипуляций можно привести к идеалу работу вашего сервера БД.

Хочу заметить, что рекомендованное непрерывное время работы сервера БД не менее 48 часов, тогда информация будет более точной и на основе этого вам нужно будет провести тюнинг.

К моему конфигурационному файлу, можно добавить секцию для активации журнала медленных запросов, это поможет вам анализировать работу ваших проектов. В секцию «mysqld» добавляем:

Так же нужно создать лог файлы, для ошибок работы MariaDB и журнала медленных запросов:

touch /var/log/mysql-error.log
touch /var/log/slow-query.log

Делаем рестарт сервиса:

systemctl restart mariadb

Просмотреть журнал медленных запросов можно открыв файл /var/log/slow-query.log или же проверять его в режиме реального времени:

tail -f /var/log/slow-query.log

Таким образом вы можете анализировать запросы к БД вашего проекта и на основе этого проводить аудит.

После любых изменений настроек БД нужно проверять конфигурацию на наличие ошибок:

Обязательно после всех работ с настройкой баз данных выполняйте проверку статуса на предмет ошибок выполняя команду:

systemctl status mariadb -l

Основные команды для работы в консоли MariaDB

Ниже приведены основные команды cli, которые чаще всего приходится использовать администратору при работе в консоли maridb.

Для локального входа в консоль MariaDB, выполните:

Для удаленного подключения к серверу БД MariaDB:

mysql -u root -p -h 10.1.1.20

create database db1; — создать БД с именем db1

show databases; — вывести список созданных БД

use db1; — войти в БД с именем db1

show tables; — вывести таблицы БД в которой мы находимся

create user ‘test’@’localhost’ identified by ‘123456’; — создать пользователя test и задать пароль 123456(используйте более сложные пароли)

grant all privileges on database_name.* to ‘test’@’localhost’; — даем полные права пользователю test

flush privileges; — обновляем все привилегии

show processlist; — посмотреть активные соединения в БД или же можно использовать команду:

show status where `variable_name` = ‘Threads_connected’;

Так же из консоли mysql можно просматривать или изменять параметры, например:

SHOW VARIABLES LIKE ‘max_error_count’;

В заключении хотелось бы сказать, что при настройке сервера БД нужно опираться на проекты которые будут размещаться на данном сервере. То, что применимо для мелких проектов, в корне может не подойти для крупного проекта. Пробуйте, экспериментируйте и самое важное всегда заглядывайте в логи. В следующей статье мы покажем как организовать высокую доступностьи и увеличить производительность приложений за счет исопльзования репликации между серверами в MariDB.

Читайте также:  Microsoft windows 365 support
Оцените статью