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

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

Если вы хотите установить веб-сервер с MariaDB в качестве СУБД, то изучите «Инструкцию по установке веб-сервера Apache c PHP, MariaDB и phpMyAdmin в 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 всё равно нужно явно указать путь до папки с базами данных:

mysql_install_db --datadir=ПУТЬ_ДО_ПАПКИ_С_БАЗАМИ

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

C:\Server\bin\mariadb\bin\mysql_install_db --datadir=C:\Server\data\DB\data\

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

C:\Server\bin\mariadb\bin\mysqld --install
net start mysql

Документация о mysql_install_db: https://mariadb.com/kb/en/library/mysql_install_dbexe/

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

Параметр Описание
-?--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':

mysql_install_db.exe --datadir=C:\db --service=MyDB --password=secret

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

sc start MyDB

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

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

sc stop <ИМЯ_СЛУЖБЫ>
sc delete <ИМЯ_СЛУЖБЫ>
rmdir /s /q <ПУТЬ_ДО_ПАПКИ_БАЗ>

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *