- Portable MySQL 5.7 в Windows
- Назначение портативной установки MySQL 5.7 в Windows
- Скачивание дистрибутивов MySQL 5.7 и Workbench
- Настройка MySQL
- Настройка каталогов MySQL
- Создание конфига my.ini
- Пример файла my.ini
- Инициализация и переинициализация MySQL сервера
- Запуск MySQL сервера
- Примерный лог при запуске MySQL сервера:
- Подключение к MySQL из Workbench
- Смена пароля root пользователя
- Запуск и остановка MySQL .bat файлами
- Пример файла запуска MySQL — start.bat:
- Пример файла остановки MySQL — stop.bat:
- Настройки Windows для MySQL
- Установка MySQL как службы с авто запуском:
- Установка MySQL как службы с ручным запуском:
- Удаление MySQL службы:
- Команды MySQL в cmd Windows
Portable MySQL 5.7 в Windows
В статье представлена установка и настройка портативного варианта базы данных MySQL 5.7 Community Server на Windows из zip архива. Описаны все действия — загрузка zip архива с дистрибутивом MySQL сервера, организация каталогов, настройка конфигурации, инициализация, запуск и подключение к серверу из программы MySQL Workbench. Статья так же содержит скринкаст.
Назначение портативной установки MySQL 5.7 в Windows
Портативный вариант инсталляции базы данных MySQL в OS Windows может быть особо удобным для организации среды web разработки для приложений, рассчитанных под LAMP. Конечно, в идеальном случае, для LAMP веб разработки лучше работать в OS Linux, но для тех случаев, когда это по каким-либо причинам невозможно, приходиться организовывать нужное окружение на Win машине. Для этих целей существуют разные подходы и варианты сборок WinAMP для организации среды для web разработки . Однако в таких сборках база данных MySQL представлена в минимальном, урезанном варианте и часто не в самой свежей и последней версии. Поэтому, как раз для того, чтобы иметь свой полный и актуальный вариант portable установки MySQL сервера и есть смысл делать такую инсталляцию. Ее можно разместить прямо в каталоге вашей WAMP сборки, и использовать вместо имеющейся там изначально версии MySQL. Или вообще можно собрать свою WAMP сборку, установив в нее самостоятельно MySQL и другие компоненты, и выполнив их настройку и связку.
Основные преимущества такого варианта инсталляции MySQL сервера могут быть в следующем:
- портативность установки, т.е. вы сможете переносить и использовать MySQL сервер на других PC с Windows. Так же инсталляция не будет связана с системой и не будет прописываться в реестре. Однако, если вам не нужна именно портативная установка, то тогда, наверное, технически будет проще выполнить обычную для Windows установку при помощи MySQL Installer for Windows, который можно скачать на странице загрузки .
- возможность иметь последую актуальную версию MySQL сервера. Так на момент написания статьи MySQL имеет версию 5.7.13, которая имеет существенные преимущества перед версией 5.6 по производительности и дополнительному функционалу. Чего только стоит появление нового типа данных json, что позволяет хранить в столбце таблицы, извлекать и обрабатывать данные в виде объекта json.
- независимая настройка базы данных MySQL под свои нужды и возможность использования дополнений и плагинов, входящих в полный дистрибутив MySQL 5.7.13 Community Server.
- полезный опыт по ручной настройке базы данных MySQL, который даст вам неоспоримые преимущества при самостоятельном развертывании продуктивного LAMP web сервера, т.к. по своей сути все настройки MySQL будут одинаковы как для Windows, так и для Linux OS.
В этой статье все описания и примеры представлены для версии MySQL Community Server 5.7.13, но все это будет так же подходить и для более новых версий MySQL. Однако могут быть нюансы, поэтому, если что либо не будет получаться, то пишите в комментариях и читайте официальную документацию MySQL.
Скачивание дистрибутивов MySQL 5.7 и Workbench
Загрузить zip архив с дистрибутивом MySQL Community Server 5.7.13 (mysql-5.7.13-winx64-debug-test.zip) для выполнения portable установки можно с официального сайта , где в низу страницы представлены разные варианты дистрибутивов, в том числе и в формате zip архива. Загрузить программу MySQL Workbench (mysql-workbench-community-6.3.7-winx64-noinstall.zip) можно так же с официального сайта MySQL . На этих страницах загрузки данные дистрибутивы доступны как в варианте универсального инсталлятора для Windows, так и в виде простого zip архива.
Так же для работы MySQL 5.7 в Windows необходимо, что бы в системы были установлены следующие библиотеки:
Настройка MySQL
Настройка каталогов MySQL
Загруженный zip архив с дистрибутивом MySQL сервера нужно распаковать в выбранную вами папку. Путь до каталога и само название каталога целесообразно (но не обязательно) создавать такими, что бы они содержали только английские буквы и цифры и не имели пробелов. В таком варианте вам не придется заключать в кавычки пути в конфигурационном файле MySQL. Так же чем короче будет путь, например, «Z:/mysql» , тем легче вам его будет править, в особенности при миграции каталога с дистрибутивом между вашими PC. Если вы собираете свою WINAMP сборку, то удобно будет выделить для нее даже отдельный диск.
Распакованный дистрибутив MySQL сервера по умолчанию будет иметь следующую структуру каталогов:
В дополнении к уже имеющимся каталогам нужно создать дополнительно в домашней директории MySQL сервера следующие каталоги:
- data — каталог для файлов баз данных;
- files — каталог для файлов, с которыми может работать MySQL сервер;
- logs — каталог для логов сервера;
- tmp — каталог для временных файлов.
Эти директории нужно создать самостоятельно вручную, т.к. MySQL сервер сам не создает директории. Позднее, пути к этим папкам будут указываться в конфигурационном файле my.ini. Такой подход позволяет вам удобно организовать структуру домашнего каталога MySQL. Так же, при необходимости, вы можете расположить эти каталоги и вне домашней директории программы MySQL, но это более актуально на продуктивном сервере т.к. позволяет вынести, например, файлы базы данных на отдельный раздел/диск.
Создание конфига my.ini
Перед инициализацией или переинициализацией MySQL сервера необходимо создать в корне его домашней директории конфигурационный файл my.ini и записать в него необходимые директивы. Файл my.ini является главным конфигурационным файлом MySQL сервера в Windows. Создать файл my.ini удобно путем копирования файла заготовки my-default.ini. Ниже приводиться пример файла my.ini с необходимыми настройками, которых достаточно для инициализации MySQL. Для более детальной настройки необходимо обращаться к документации MySQL сервера.
Пример файла my.ini
Ниже приведен пример файла my.ini для портативной установки MySQL сервера в Windows из zip архива. Пути в файле-примере заданы, исходя из того, что домашний каталог MySQL задан как «Z:/mysql» директория.
Инициализация и переинициализация MySQL сервера
Если MySQL сервер уже был установлен и инициализирован ранее на машине и требуется выполнить его инициализацию/переинициализацию заново/повторно, то необходимо сделать резервные копии всех баз данных на сервере MySQL (кроме служебных), остановить MySQL сервер, удалить содержимое каталога data, если нужно, то обновить дистрибутив MySQL и выполнить все настройки конфигурации, описанные выше и затем можно выполнить инициализацию заново, как это описано ниже.
Когда все каталоги и файл my.ini созданы в домашней директории MySQL сервера, то можно сделать инициализацию или переинициализацию MySQL, которая является первым необходимым действием перед запуском MySQL. В результате инициализации MySQL сервера будут созданы все необходимые для его работы файлы, базы данных и пользователь root с паролем. Для инициализации MySQL необходимо запустить файл mysqld.exe передав ему параметр initialize. Для выполнения этого перейдите в проводнике Windows в каталог /bin домашней директории MySQL сервера и находясь в этой папке запустите командную строку Windows cmd.exe. Что бы запустить cmd.exe именно в текущей папке зажмите клавишу Shift и щелкните правой кнопкой мыши в текущей папке, и в открывшемся контекстном меню выберите пункт «Открыть меню команд«. В таком варианте cmd.exe запуститься именно в текущей папке. Затем в командной строке наберите команду:
- mysqld — это запускаемый файл mysqld.exe;
- —initialize — это параметр, указывающий на необходимость выполнить инициализацию MySQL сервера;
- —console — это параметр задает вывод всех сообщения mysqld прямо консоли, что удобно. Так же эти сообщения будут записаны и в лог файл MySQL сервера.
Результатом вышеописанной команды будет инициализация MySQL сервера и создание пользователя root с первичным паролем. В командной строке вы уведите все сообщения, выданные MySQL сервером в процессе его инициализации, которые будут выглядеть примерно следующим образом:
Как видно из примера в процессе инициализации был создан пользователь root@localhost с паролем Zqw6vMfxw. В MySQL 5.7 теперь пользователю root присваивается пароль при инициализации, раньше в предыдущих версиях пароль был пустой. Этот пароль нужно записать, для того что бы иметь возможность подключиться в MySQL в последствии. Так же в процессе инициализации в паке /data будут созданы файлы базы данных и служебных таблиц:
В папке /logs будут созданы указанные вами в файле my.ini лог файлы:
Запуск MySQL сервера
После инициализации можно уже выполнить запуск MySQL сервера, для чего наберите в командой строке:
где: —console — это необязательный параметр, указывающий на вывод сообщений от MySQL прямо в командной строке. Их также можно прочитать в лог файле mysql-error.log.
В результате выполнения этой команды MySQL сервер будет запущен и в консоли будут выведены примерно следующие сообщения от mysqld.
Примерный лог при запуске MySQL сервера:
Пояснения для некоторых предупреждений [Warning] из log файла при запуске MySQL:
- сообщение: 2016-05-13T18:02:26.282563Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use —explicit_defaults_for_timestamp server option (see doc
umentation for more details). Пояснение: Это предупреждение, что TIMESTAMP с неявным указанием значению по умолчанию устарело. Это просто информационное напоминание, с ним ни чего делать не надо. Смысл этого сообщения в том, что начиная с версии MySQL 5.6 для столбцов TIMESTAMP уже не работает нестандартное поведение (это когда при не указании значения сервер сам подставлял значение). Теперь столбцы TIMESTAMP начиная с версии MySQL 5.6 ведут как и все столбцы. Если значение не передано и по умолчанию тоже не задано, то будет записано NULL, а не текущее время как раньше. Опция explicit_defaults_for_timestamp, которая предназначалась для включения нестандартного поведения теперь является устаревшей и будет удалена. - сообщение:2016-05-13T18:02:26.282563Z 0 [Warning] Insecure configuration for —secure-file-priv: Current value does not restrict location of generated files. Consider set ting it to a valid, non-empty path. Пояснение: Это предупреждающее сообщение, что не указана директория для выгружаемых и загружаемых файлов. Это не обязательный параметр. Его можно задать как директорию, которая должна существовать. По умолчанию, параметр не задан и MySQL может использовать файлы из любой директории. Для указания явным образом этой директивы добавьте в my.ini как выше в примере значение secure-file-priv=Z:/mysql/files, где Z:/mysql/files директория в которой MySQL будет ограничен при работе с внешними файлами.
Если все прошло удачно и не возникло ошибок [Error] , то вы увидите в диспетчере задач Windows работающий процесс mysqld.exe, который и является MySQL сервером.
Подключение к MySQL из Workbench
Для настройки и администрирования MySQL сервера удобно пользоваться программой MySQL Workbench. Желательно использовать последнею актуальную версию Workbench, которая поддерживает данный релиз MySQL 5.7, потому что при использовании старых SQL менеджеров, не поддерживающих новую версию MySQL 5.7 можно повредить системные таблицы, например, при редактировании пользователей с помощью интерфейса устаревшего SQL менеджера.
Если сервер успешно запустился и нет критических ошибок, то можно выполнить подключение к нему из программы MySQL Workbench. Для этого запустите программу Workbench и сдайте новое подключение к MySQL серверу, в параметрах которого укажите следующее:
- Hostname = 127.0.0.1
- Port = 3306
- Username = root
- Password = пароль выданный при инициализации
Теперь, созданное подключение нужно сохранить, нажав Close. Если, еще до сохранения/закрытия создаваемого подключения попробовать протестировать соединение, то будет выдано сообщение о невозможности подключения к MySQL серверу по причине необходимости выполнить смену первичного пароля. Поэтому, просто закройте только что созданное подключение и оно сохраниться, и будет доступно на вкладке Home Workbench.
Запустите на вкладке Home только что созданное новое подключение к MySQL серверу. При первом подключении будет открыт диалог смены первичного, выданного при инициализации MySQL сервера пароля. Выполните смену пароля, установив новый пароль для root пользователя. Вы так же вы можете задать здесь пустой пароль для root, что может быть удобно, если это локальная установка MySQL, предназначенная для вашей среды web разработки.
Если все прошло успешно, то вы подключитесь к MySQL серверу и в Workbench откроется окно с опциями для выполнения различных манипуляций. Вы можете просмотреть статус сервера, его текущее состояние, имеющиеся подключения и т.п. Программа MySQL Workbench является достаточно мощным инструментом для управления, мониторинга, разработки и администрирования MySQL сервера. Так же через Workbench вы можете выполнять правку конфигурационного файла my.ini. Для этого вам нужно будет на вкладке Home открыть правой кнопкой мыши на редактирование созданное подключение к вашему portable MySQL серверу и на закладке System Profile отредактировать в параметре Configuration File путь к вашему my.ini и заново подключиться к серверу. После чего в пункте Option File в левой части окна Workbench вы сможете открыть графический диалог редактирования директив конфигурационного файла MySQL my.ini. В этом графическом интерфейсе вы сможете изменить или удалить существующие и добавить новые параметры. Все ваши изменения будут занесены в файл my.ini программой Workbench. Так же удобство этого графического интерфейса в том, что там отображаются параметры по умолчанию для не указанных явно в файле my.ini директив и приведены краткие описания к ним (детали см. в скринкасте).
Смена пароля root пользователя
Если вам не удается подключиться к MySQL серверу по причине неверного пароля, например, если вы не записали первичный пароль root пользователя, выданный сервером при инициализации, или вы хотите сменить пароль любого другого пользователя. В таких случаях вы можете выполнить изменение пароля пользователя MySQL при помощи SQL запроса путем запуска сервера с параметром init-file. Для этого создайте в домашней директории MySQL сервера текстовый файл с названием, например, mysql-init.txt (название файла может быть любым). В этот файл поместите SQL запрос вида:
- ‘root’ @ ‘localhost’ — пользователь, для которого требуется сменить пароль;
- ‘MyNewPass’ — новый пароль для пользователя. Если нужно задать пустой пароль, просто укажите пустые одинарные кавычки.
Теперь можно приступать к смене пароля. Для этого убедитесь, что процесс mysqld.exe не запущен в настоящий момент. Если это не так, то завершите в диспетчере задач Windows процесс mysqld.exe т.к. завершить его из командной строки при неизвестном пароле root пользователя не удастся. Затем откройте окно команд в папке /bin и выполните команду:
где в параметре —init-file укажите путь к файлу с SQL запросом на смену пароля. В примере это Z:/mysql/mysql-init.txt файл.
Выполнение этой команды приведет к запуску MySQL сервера и к смене пароля указанного пользователя. Если все прошло успешно, то вы увидите в диспетчере задач запущенный процесс mysqld.exe и сможете подключиться к MySQL серверу под данным пользователем с новым паролем. Если при выполнении этой команды cmd зависает, ее окно нужно закрыть. После смены пароля файл mysql-init.txt можно удалить. Если при смене пароля допустили ошибки и пароль не сменился, и подключиться не получается, то нужно все сделать заново. Остановить сервер в диспетчере задач, выбрав завершение процесса, проверить файл и SQL запрос на смену пароля в нем и попробовать снова.
Запуск и остановка MySQL .bat файлами
Для удобства запуска и остановки вашего portable MySQL сервера можно в его домашнем каталоге создать два .bat файла командной строки. Например, start.bat и stop.bat, в которые записать команды запуска и остановки MySQL. Таким образом вы сможете запускать и останавливать ваш MySQL сервер простым кликом по соответствующему файлу, что удобно т.к. не нужно открывать cmd и набирать команду руками.
Пример файла запуска MySQL — start.bat:
Пример файла остановки MySQL — stop.bat:
Настройки Windows для MySQL
Для удобства работы в cmd с mysqld можно добавить в конец переменной PATH через точку с запятой путь к директории с файлом mysqld.exe вашего MySQL сервера, например, Z:\mysql\bin. Это нужно делать в настройках Windows: Computer > Properties > Advanced > System Properties > System Variables, где выбрать редактирование переменной Path. Тогда уже будет не важно в каком каталоге запущена cmd для вызова mysqld, значение пути будет барться из системной переменной Windows — PATH.
Также можно настроить запуск и остановку MySQL как системной службы, для чего выполните в cmd следующие необходимые вам команды:
Установка MySQL как службы с авто запуском:
Установка MySQL как службы с ручным запуском:
Удаление MySQL службы:
Команды MySQL в cmd Windows
Ниже представлены некоторые необходимые команды для работы с MySQL сервером из командной строки Windows — cmd:
Запуск MySQL сервера:
Вход к консоль mysql при наличии пароля:
Вход к консоль mysql, если пароля у пользователя нет, то без ключа -p:
Начало строки вида mysql>. означает, что вы в данный момент находитесь в консоли MySQL сервера и здесь можно писать SQL запросы.
Выйти из консоли MySQL:
Показать имена имеющихся баз данных:
Показать имена таблиц базы данных mysql (служебная база данных MySQL)
Остановка в cmd запущенного MySQL сервера:
Остановка в cmd запущенного MySQL сервера если root не имеет пароля: