Установка MySQL для Windows

MySQL для Windows может понадобиться для разработки и нормальной работы приложений, включая локальные Web-приложения, в среде этой операционной системы. За основу возьмем MySQL 8.0, например 8.0.46, так как данная версия достаточно современная и при этом поддерживается в Windows 7 (в статье так обозначены Windows 7/8/8.1). Для 32-разрядной Windows нужно устанавливать предыдущую версию – MySQL 5.7, например 5.7.44 (для win32).

Будем устанавливать MySQL из дистрибутива в виде zip-архива, несмотря на то что в версии 8.0 еще не появился Конфигуратор (mysql_configurator.exe). Чтобы настроить конфигурацию сервера MySQL, можно использовать MySQL Installer – особой установщик, включающий в себя помимо сервера и другие компоненты, например MySQL Workbench. Однако для лучшего понимания деталей не будем использовать этот способ. Кроме того, MySQL Installer 8.0 – финальный выпуск, т.е. этот установщик больше не развивается (не путать с дистрибутивом сервера в виде MSI-файла):

Note: MySQL 8.0 is the final series with MySQL Installer. As of MySQL 8.1, use a MySQL product's MSI or Zip archive for installation. MySQL Server 8.1 and higher also bundle MySQL Configurator, a tool that helps configure MySQL Server.

Распакуем архив, например, в папку D:\Programs\MySQL\8.0 (папка 8.0 вложена в папку MySQL, чтобы можно было иметь несколько версий внутри общей папки MySQL). Для одной из имеющихся версий MySQL добавим к текущему значению переменной среды Path полное имя папки bin (через точку с запятой), например:

текущее\значение;D:\Programs\MySQL\8.0\bin

Создадим

  • папку C:\ProgramData\MySQL\8.0\Data (можно пропустить),
  • папку C:\ProgramData\MySQL\8.0\Uploads (можно в Конфигураторе),
  • конфигурационный файл C:\ProgramData\MySQL\8.0\my.ini (см. далее).

В распакованном архиве отсутствует образец конфигурационного файла. Можно скачать конфигурационный файл и отредактировать его (для версии 8.0 и выше, вплоть до последней на данный момент версии 9.7; для версии 5.7). А начиная с версии 8.1 – создать его Конфигуратором (и тоже отредактировать). Также есть особый трюк для версии 8.0 в Windows 7. В этой паре тоже можно использовать Конфигуратор (из версии 8.1 и выше)! Он создаст конфигурационный файл, но не создаст хранилище, потому что произойдет сбой из-за отсутствия поддержки со стороны операционной системы, например такой:

mysqld.exe - Точка входа не найдена

Точка входа в процедуру AddDllDirectory не найдена в библиотеке DLL KERNEL32.dll.

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

В Windows 7 понадобится пакет Microsoft Visual C++ 2015-2022 Redistributable. Последняя версия пакета, совместимая с Windows 7, – 14.44.35211.0 (14.50.x.x уже не совместима): для x64, для x86 (и в дополнение к x64). MySQL Installer и Конфигуратор потребуют Microsoft .NET Framework (версия 4.8 без обновления 4.8.1 подойдет для Windows 7 и ранних сборок Windows 10).

Конфигурационные файлы для версий, начиная с 8.0, не отличаются по существу. Могут отличаться адреса страниц документации, имена папок, размеры буферов и временных таблиц, например такие параметры и комментарии:

# https://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html

# basedir="D:/Programs/MySQL/8.0/"
datadir="C:/ProgramData/MySQL/8.0/Data"
secure-file-priv="C:/ProgramData/MySQL/8.0/Uploads"

tmp_table_size=23M
myisam_sort_buffer_size=38M
read_buffer_size=76K

Размеры по умолчанию можно найти в описании соответствующих параметров на странице документации, однако они вполне могут не совпадать с размерами, которые устанавливают MySQL Installer и Конфигуратор.

В конфигурационном файле для версии 8.0 явно прописан параметр политики многофакторной аутентификации, но со значением по умолчанию:

# Administers multifactor authentication (MFA) capabilities. It applies to the authentication
# factor-related clauses of CREATE USER and ALTER USER statements used to manage MySQL account
# definitions, where "factor" corresponds to an authentication method or plugin associated
# with an account.
authentication_policy=*,,

Если нужен вывод всех запросов в текстовые лог-файлы, в параметре log-output нужно заменить значение NONE на FILE, а в general-log и/или slow-query-log – значение 0 на 1. Имена этих лог-файлов обычно определены в любом случае.

Создадим хранилище (инициализируем содержимое папки Data, в которой будут храниться базы данных), если этого не было сделано в Конфигураторе:

mysqld --defaults-file="C:\ProgramData\MySQL\8.0\my.ini" --initialize[-insecure] [--console]

Квадратные скобки обозначают элемент, который можно опустить. Если указать --initialize, то начальный пароль суперпользователя root будет выведен в начале лог-файла ошибок (Data\COMPUTER.err). А если указать --initialize-insecure, этот пароль будет пустым. Если указать --console, лог будет выводиться на экран. Там же можно будет увидеть начальный пароль, если он не пустой.

Установим сервер MySQL в виде службы Windows с именем MySQL80, если этого не было сделано в Конфигураторе:

mysqld --install[-manual] "MySQL80" --defaults-file="C:\ProgramData\MySQL\8.0\my.ini"

Все команды управления службой нужно выполнять от имени администратора. Если указать --install, служба будет установлена для запуска «Автоматически». Если указать --install-manual, служба будет установлена для запуска «Вручную».

В дальнейшем можно управлять запуском и типом запуска службы при помощи оснастки «Службы» (services.msc), утилит sc, net и т.п.

Запустим службу, например, так (можно сразу протестировать автоматический запуск службы – перезагрузить систему, не выполняя эту команду):

sc start "MySQL80"

Для удаления службы можно использовать следующую команду (сначала нужно остановить службу):

mysqld --remove "MySQL80"

В завершение установим «постоянный» пароль суперпользователя root (можно не указывать параметр -p, если начальный пароль пустой):

mysql -u root -p

Введем начальный пароль, если потребуется, и после входа в mysql выполним следующий запрос («постоянный» пароль нужно указать вместо слова «пароль»):

ALTER USER 'root'@'localhost' IDENTIFIED BY 'пароль';

После выполнения этого запроса можно выйти из mysql (quit). Установка MySQL полностью завершена. Можно приступать к созданию обычных пользователей и баз данных.

Комментарии: 0

Отправить комментарий

Ваш адрес E-mail не будет опубликован.