Настройка MariaDB в Windows
Требования к сборке
Для сборки MariaDB необходимо следующее:
- Visual C++: В настоящее время поддерживаются Visual Studio 2019 и 2022. Как правило, мы стараемся поддерживать две последние версии VS, но сами собираем, используя последнюю. Общедоступные редакции подойдут; мы используем их только в наших сборках. При установке Visual Studio убедитесь, что вы добавили "Разработка настольных приложений с помощью C++".
- CMake: Рекомендуется использовать последнюю версию. Более старые версии могут не поддерживать вашу версию Visual Studio. Visual Studio 2019 требует cmake 3.14 или более поздней версии.
-
Git: Необходим для сборки новых версий из исходного дерева.
- ПРИМЕЧАНИЕ: выполните
git config --global core.autocrlf input
после установки, иначе некоторые тесты mtr могут завершиться неудачей
В диалоговом окне "Настройка переменной среды PATH" выберите "Использовать Git из командной строки Windows", иначе в переменной среды PATH будут указаны неправильный (mingw64) git и perl
-
Bison из GnuWin32: Bison создаёт части парсера SQL. При скачивании выберите "Полный пакет, за исключением исходных файлов".
- ПРИМЕЧАНИЕ: не устанавливайте его в стандартный путь с пробелами (например, в
C:\Program Files\GnuWin32); сборка сломается из-за ошибки bison. Вместо этого установите вC:\GnuWin32. - Добавьте
C:\GnuWin32\binв вашу системнуюPATHпосле установки.
- ПРИМЕЧАНИЕ: не устанавливайте его в стандартный путь с пробелами (например, в
- Strawberry perl: Используется для запуска набора тестов. ActiveState Perl — это ещё одна дистрибуция Win32 Perl, и она также должна работать (но она не так хорошо протестирована). ПРИМЕЧАНИЕ: версии Perl из Cygwin или mingw не подойдут для тестирования. Используйте встроенный в Windows Perl.
- Необязательно: Если вы планируете собрать пакеты MSI, установите Windows Installer XML. Если вы собираете MSI с версией 10.4, также измените установку Visual Studio, добавьте "Перераспределяемые файлы MSM" (см. MDEV-22555)
- Gnu Diff, необходим, если вы запускаете тесты mysql-test-run.pl.
Проверьте, что bison.exe, git.exe, cmake.exe и perl.exe доступны в переменной среды PATH с помощью "where bison", "where git", "where perl" и т. д. из командной строки.
Сборка библиотек Windows
Вышеперечисленные инструкции предполагают использование MariaDB 10.2 или более поздней версии.
Разветвите репозиторий MariaDB или распакуйте архив с исходниками. В командной строке перейдите в каталог с исходниками, затем выполните:
mkdir bld cd bld cmake .. cmake --build . --config RelWithDebInfo
В приведенном примере собирается релизная конфигурация для 64-битных систем в подкаталоге с именем bld. "cmake ..." — это этап конфигурации, "cmake --build . --config Relwithdebinfo" — это этап сборки.
Варианты сборки
Сборка отладки
Сборка отладочной версии выполняется с помощью:
cmake --build . --config Debug
Сборка 32-битных и 64-битных библиотек
Сборка 64-битной библиотеки
Генератор cmake Visual Studio 2019-2022 по умолчанию использует архитектуру хоста, то есть с вышеуказанными шагами cmake будет собирать x64-битные библиотеки на x64-машине.
Сборка 32-битной библиотеки
Передайте параметр -A Win32 для CMake, например так
cmake .. -A Win32
Историческая справка: С Visual Studio 2017 и более ранними версиями необходимо было указать имя 32-битного генератора, например cmake .. -G "Visual Studio 15 2017"
Полный список доступных генераторов можно получить, вызвав "cmake" без параметров.
Сборки в IDE
Вместо вызова "cmake --build", как указано выше, откройте MySQL.sln. При запуске Visual Studio выберите «Сборка/Компилировать».
Сборка ZIP-пакета
cmake --build . --config relwithdebinfo --target package
Вот как это делается в соответствии со стандартами, стандартная цель cmake.
Однако MariaDB использует нестандартную цель «win_package» для упаковки своих релизов, она генерирует 2 ZIP-файла: компактный с исполняемыми файлами и ещё один с отладочной информацией (.PDB-файлы). Отладочная информация важна для отладки выпущенных библиотек и анализа сбоев.
cmake --build . --config relwithdebinfo --target win_package
Сборка MSI-пакета
cmake --build . --config relwithdebinfo cmake --build . --config relwithdebinfo --target MSI
Включение HeidiSQL в установщик MSI
Начиная с MariaDB 5.2.7, можно создать установщик, включающий сторонние продукты, как описано в MWL#200. В настоящее время поддерживается только HeidiSQL; он также включён в официальные сборки. Используйте параметр CMake -DWITH_THIRD_PARTY=HeidiSQL для включения его в установщик.
Подпись кода
Сборки MariaDB опционально поддерживают подпись кода с помощью authenticode с опциональным параметром SIGNCODE. Используйте cmake -DSIGNCODE=1 во время этапа конфигурации для подписи библиотек в ZIP и MSI пакетах.
Важно: для работы SIGNCODE=1 пользователь, запускающий сборку, должен установить действительный цифровой сертификат authenticode в хранилище сертификатов, иначе этап упаковки завершится неудачей.
Сборка пакетов для выпусков MariaDB
Полная последовательность команд для создания релиза с внеисточниковой сборкой с Visual Studio и подписанными бинарными файлами может выглядеть так:
mkdir bld cd bld cmake .. -DSIGNCODE=1 -DWITH_THIRD_PARTY=HeidiSQL cmake --build . --config relwithdebinfo --target win_package cmake --build . --config relwithdebinfo --target MSI
Эта последовательность команд создаст ZIP-пакет (например, mariadb-5.2.6-win32.zip) и MSI-пакет (например, mariadb-5.2.6-win32.msi) в каталоге bld.
Запуск тестов
- Важно: Не используйте bash Cygwin, MinGW bash, Git bash, WSL bash или любой другой bash при запуске набора тестов. В таком случае вы, скорее всего, будете использовать неправильную версию Perl (версию «Unix-подобную» в Windows), и потратите много времени, пытаясь понять, почему эта версия Perl не подходит для набора тестов. Используйте встроенный в Windows Perl, в cmd.exe или PowerShell вместо этого,
- Перейдите в подкаталог mysql-test каталога сборки
cd C:\server\bld\mysql-test
- Запустите набор тестов
perl mysql-test-run.pl --suite=main --parallel=auto
Запуск теста под отладчиком
Предполагается, что VS установлена на компьютере
perl mysql-test-run.pl <test_name> --vsjitdebugger
Если vsjitdebugger не запускается, вы можете отредактировать ключ реестра AeDebug, как указано в
В качестве альтернативы:
perl mysql-test-run.pl <test_name> --devenv
(devenv.exe должен быть в PATH)
или, если вы предпочитаете WinDBG
perl mysql-test-run.pl <test_name> --windbg
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/Building_MariaDB_on_Windows/