You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today.

Загрузка...

Установка MySQL на Windows 10 из noinstall пакета

Данная статья задумывалась как простой вариант установки архивной версии MySQL Community (GPL), так называемой noinstall версии. Здесь не будет каких-либо рекомендаций по безопасности или производительности, только лишь простой разбор пунктов:

  1. Скачивание архива;
  2. Создание конфигурационного файла;
  3. Инициализация MySQL;
  4. Первый запуск MySQL сервера;
  5. Замена default-пароля у пользователя root;
  6. Создание и запуск службы MySQL;
  7. Финальное подключение;
  8. Удаление установленной службы.

1. Скачивание файла - с официального сайта сайта www.mysql.com

Скачивание noinstall пакета mysql

далее распакую архив в каталог d:\mysql\mysql-5.7.16-winx64\ и дополнительно создадим каталоги data и logs

Путь назначения

Также в архиве с версией mysql 5.7.16 присуствует файл my-default.ini с очень скудными закомментированными настройками.

Сразу хотел бы обратить ваше внимание на то, что согласно документации в версиях выше 5.7.18 включительно файл my-default.ini больше не входит в архив:

Информация об отсутствующем файле my-default.ini

и действительно, в архиве mysql-5.7.18-winx64.zip данный файл уже отсуствовал.


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

my-default.ini


[mysql]
character_sets_dir              = d:\\mysql\\mysql-5.7.16-winx64\\share\\charsets
default-character-set=cp866

[mysqld]

innodb_buffer_pool_size = 128M

basedir = d:\\mysql\\mysql-5.7.16-winx64
datadir = d:\\mysql\\mysql-5.7.16-winx64\\data
port = 3308
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

character_set_server            = utf8mb4
collation_server                = utf8mb4_unicode_ci

secure-file-priv=d:\\c\\base\\mysql_test

character_sets_dir              = d:\\mysql\\mysql-5.7.16-winx64\\share\\charsets
default_storage_engine          = InnoDB

general_log                = 1
general_log_file           = d:\\mysql\\mysql-5.7.16-winx64\\logs\\MySQL-5.7_queries.log
log_error                  = d:\\mysql\\mysql-5.7.16-winx64\\logs\\MySQL-5.7_error.log

innodb_log_file_size            = 128M

Данный файл перед тем как выкладывать его я естественно потестировал, как минимум на то, что поднимется служба или нет. Хотел бы особо обратить внимание на порт, т.к. у меня ещё периодически запускается OpenServer, то я решил не использовать порт по умолчанию 3306, а заменить его к примеру на 3308. Также не стану менять имя файла c my-default.ini на my.ini, чтобы потестировать явное указание конфиги для службы.


Конфигурационный файл создан и сервер готов к инициализации, на этапе которого создадутся нужные файлы в каталоге d:\mysql\mysql-5.7.16-winx64\data\, лог файлы в каталоге d:\mysql\mysql-5.7.16-winx64\logs\, временный пароль для суперпользователя root.

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

Админский cmd

в консоли необходимо запустить утилиту mysqld.exe с парой параметров: --defaults-file, --initialize, --console. Параметр  --defaults-file не обязателен, если конфигурационный файл будет назван классически, например my.ini и сервер сам сумеет его найти. Если нет, то с помощью данного параметра мы укажем путь к кофигурационному файлу:


mysqld --defaults-file=d:\\mysql\\mysql-5.7.16-winx64\\my-default.ini --initialize --console 

вставляем/набираем данную команду в консоле и жмём Enter:

Инициализация mysql

После непродолжительного времени команда завершит свою работы, в качестве последней строки будет указан временный пароль для супер пользователя root, который неоходимо будет заменить при первом подключении к СУБД.

Как проверить отработал ли параметр --defaults-file с нестандартным именем файла? В конфиге my-default.ini был указан параметр innodb_log_file_size со значением 128 Мегабайт, в каталоге data и были созданы два файла с таким размером:

Созданные файлы

если бы файл был игнорирован, то данные файлы были бы по 48 Мегабайт.


Ну что ж, все нужные для работы файлы созданы, можно приступать к первому запуску MySQL сервера. Данная процедура также производится из консоли с помощью команды:


mysqld --defaults-file=d:\\mysql\\mysql-5.7.16-winx64\\my-default.ini --console

Первый запуск сервера

Сервер MySQL запущен!!!

Обратите внимание, данная команда может быть завершена только принудительно, либо закрытием консоли, либо сочетанием клавишь Ctrl+C.

Итак, MySQL сервер запущен на порту 3308 - пробуем подключиться к нему под пользователем root тоже из консоли, только уже запущенной из-под обычного пользователя и не забываем про временный пароль:

Первый вход

немного поясню, mysql.exe - это консольная утилита для подключения, -P - заглавная буква означает порт(port), -u - пользователь(user), -p - пароль(password) - жмём Enter и вводим временный пароль и снова Enter.

Если всё прошло успешно, то вы увидите Сердечное приветствие!

Попробуем посмотреть список баз с помощью команды:


show databases;

Меняйте пароль

при попытке это сделать, нам будет предложено поменять пароль!!!


ALTER USER 'root'@'localhost' IDENTIFIED BY '123';

Изменение пароля

пароль успешно изменён, теперь перелогинимся с новым паролем:

\q - выход из mysql

Успешная авторизация

В консоле, где запущен сервер MySQL завершаем его путём нажатия сочетанием клавишь Ctrl+C


После успешной проверки настроек сервера MySQL приступик с созданию службы, чтобы каждый раз не запускать сервер вручную (mysqld.exe с параметрами).

Для создания службы запустим утилиту mysqld.exe с параметрами:


mysqld --install MYSQL5.7.16 --defaults-file=d:\\mysql\\mysql-5.7.16-winx64\\my-default.ini

где --install параметра указывающий, что необходимо создать службу,

MYSQL5.7.16 - имя службы(но можно назвать и по другому),

--defaults-file - параметр указывающий на месторасположение и имя конфигурационного файла.

Служба успешно установлена сообщение из консоли

служба успешно установлена, об этом свидетельствует сообщение: "Service successfully installed."

Запустим её с помощью команды net start с указанием имени службы:


net start MYSQL5.7.16

Успешный запуск установленной службы MySQL5.7.16

с помощью утилиты services.msc можно запустить графический интерфейс по управлению службами, если планируете из данного интерфейса перезапускать службы, то надо запускать из-под администраторской учётки:

Запуск services.msc

Интерфейс Службы

чтобы посмотреть свойства службы MYSQL5.7.16 - правой кнопкой один раз кликаем по ней и заходим в свойства:

Заходим в свойства MySQL5.7.16

В окне свойств можно увидеть как имя службы, так и конфигурационный файл:

Свойства службы MYSQL5.7.16

Свойства службы MYSQL5.7.16 продолжение

Служба установлена. При загрузке Windows сервер MySQL будет запущен автоматически.

Осталось проверить подключение с консоли:

Финальное подключение к MYSQL5.7.16

Подключение с новым паролем 123 прошло успешно. Переходим к удалению службы.


В данном пункте будет показан способ удаления службы, если например необходимо её назвать по другому и т.д.

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


net stop MYSQL5.7.16

после остановки службы удаляем её:


mysqld --remove MYSQL5.7.16

Остановка службы и её удаление

служба успешно удалена, о чём свидетельствует сообщение "Service successfully removed."

Итог: В данной статье рассмотрена установка службы из noinstall пакета с простым набором параметров в конфигурационном файле. Чтобы обеспечить полный функционал и безопасность MySQL-сервера необходимо более детально его настраивать. Если вы решили установить подобным образом всё что указно выше, вы это делаете на свой страх и риск.

Скачать my-default.ini в архиве