![Мотивационное фото Мотивационное фото](https://habrastorage.org/getpro/habr/upload_files/393/29a/b56/39329ab56b8b5b29db056c2f08612baf.jpg)
Вместо предисловия
Рассматривается версия Community. Материал ориентирован на тех, кто желает постичь основы управления базами данных, в частности, MySQL.
Необходимые компетенции: базовые навыки работы с командной строкой (консолью) MS Windows и самой операционной системой ( редактирование реестра, копирование, вставка, удаление объектов, строк в консоли ), 1-2 драгоценных часа жизненного цикла :-).
В статье приведены многочисленные ссылки на разъясняющий материал - не пропадете :-). Вопросы, предложения и комментарии читателей приветствуются. Перед тем, как написать возмущенный комментарий, представьте на минуточку орду изголодавшихся фанатов MySQL на Хабре, жаждущих чьей-то крови :-).
Мотивация
Скорый обзор публикаций по ключевым словам в поисковике выявил ряд материалов - сборников сборной солянки, как мне показалось, в т.ч. ошибок и неточностей. Наиболее интересными по содержанию показались следующие материалы Рунета:
не могу не отметить инструкцию для MySQL на английском с непереводимым, но очень метким названием "Put MySQL in PATH"
а также переведенную, очевидно, машинным способом, с китайского языка статью на портале "Русские блоги" с фотками китайской версии Windows - такая у нас международная любовь к MySQL; своей экзотики, видимо, уже не хватает :-).
Переменная среды́ ( англ. environment variable ) — текстовая переменная операционной системы, хранящая какую-либо информацию, например данные о настройках системы [ 1 ].
Каждый процесс имеет блок среды [окружения], который содержит набор переменных среды и их значений. Существует два типа переменных среды: переменные среды пользователя (устанавливаются для каждого пользователя) и переменные среды системы (устанавливаются для всех) [ 2 ].
Настраивать переменные среды возможно 3-мя способами
При манипуляциях с переменными среды "мануал" настоятельно рекомендует сделать резервные копии реестра и всех изменяемых файлов, т. к. в случае ошибки компьютер может тупо не загрузиться. А лучше скопировать весь ноутбук или что там у вас...
Ну, это они на своих ламеров пусть страх нагоняют! А у нас, у кулхацкеров, любой код с первого раза работает, как часики! :-Е)
Вариант 1 - через "Панель управления" -> «Система» -> «Дополнительные параметры системы» -> «Переменные среды» ( рис. 1 - 4 ) (через "Свойства" Моего-Твоего-Нашего-Вашего-Общего компьютера получается быстрее).
![Рис. 1 Рис. 1](https://habrastorage.org/getpro/habr/upload_files/4f8/577/b12/4f8577b12b77d82ecb45b8bfa01c284b.png)
![Рис. 2 Рис. 2](https://habrastorage.org/getpro/habr/upload_files/b9d/05e/f75/b9d05ef7591040a2f18d01acad64e151.png)
![Рис. 3 Рис. 3](https://habrastorage.org/getpro/habr/upload_files/684/bc7/788/684bc77880229151c17025b892ce0cd7.png)
![Рис. 4 Рис. 4](https://habrastorage.org/getpro/habr/upload_files/fd6/0c8/558/fd60c8558c8acadd05b78a57f3d1bf92.png)
Здесь необходимо создать новую строковую запись с путем до папки "bin", например
C:\mysql\bin
, и перезагрузить компьютер.
![Рис. 5 Рис. 5](https://habrastorage.org/getpro/habr/upload_files/5d8/297/0b9/5d82970b970ca5df99fcedf9046cbe00.png)
Вариант 2 - с помощью редактора реестра. Так делают настоящие кулхацкеры :-). Win+R/"Выполнить" -> "regedit" -> "Enter"/"OK". Полный путь: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment ( рис. 6 ).
![Рис. 6 Рис. 6](https://habrastorage.org/getpro/habr/upload_files/12b/a9c/030/12ba9c0302057073ec1861e0a0e47878.png)
Двойной клик на переменной "Path"-> дописать в конце строки, после знака ";" путь к папке "bin", например
C:\mysql\bin;
( рис. 7 ), -> перезагрузить компьютер.
![Рис. 7 Рис. 7](https://habrastorage.org/getpro/habr/upload_files/42a/dd8/73b/42add873b55a9cb0284ca8014b31cfba.png)
Проверка результатов обновления путей в консоли командой ( рис. 8 ):
echo %path%
После ввода команды "mysqld" курсор начинает моргать, ошибки запуска исполняемого файла по некорректному пути отсутствуют. Это значит, что сервер успешно запущен и к нему можно подключиться из параллельного окна командной строки ( рис. 9 ).
![Рис. 8 Рис. 8](https://habrastorage.org/getpro/habr/upload_files/288/dd3/2b0/288dd32b089312ef75f22b5c1ab7bb93.png)
![Рис. 9 Рис. 9](https://habrastorage.org/getpro/habr/upload_files/0e5/bd0/81b/0e5bd081b6f944a9853e36f36b950f1c.png)
Вариант 3 - с помощью консольных команд "set" и "setx".
Команда "Setx" Создает или изменяет переменные среды в пользовательской или системной среде без необходимости программирования или написания скриптов, а также извлекает значения разделов реестра и записывает их в текстовые файлы [ 3 ].
Доп. материал по команде "set":
Особенности команды "Setx" [ 4 ]:
переменные, созданные или отредактированные через "Setx"на локальном компьютере, будут доступны в будущих окнах командной строки, но не в текущем;
переменные, созданные или отредактированные через "Setx"на удалённом компьютере, будут доступны со следующего сеанса входа.
Команда "set" , которая является внутренней для интерпретатора команд (Cmd.exe), задает переменные среды пользователя только для текущего окна консоли [ 3 ].
Доп. материал по команде "SetX":
Поскольку основная задача - прописать постоянный путь до исполняемых файлов, который распространялся бы на все процессы и сохранялся после перезагрузки компьютера, команда "set" не представляет большого интереса.
Проверка содержимого строкового параметра "Path" осуществляется с помощью команды
echo %path%
![Рис. 10 Рис. 10](https://habrastorage.org/getpro/habr/upload_files/f04/60f/390/f0460f3904d00cf75b4d757ea2e96f10.png)
Как видно на рис. 10 пути выводятся дважды. Очевидно, что представлено содержимое переменных "Path" для среды пользователя и для системного окружения. Проверка через Панель управления подтверждает вывод. Этот факт нужно учитывать при манипуляциях с переменной, особенно при перезаписи путей и удалении подстрок.
При текущем положении попытка запустить MySQL приведет к ошибке ( рис. 11 ).
![Рис. 11 Рис. 11](https://habrastorage.org/getpro/habr/upload_files/088/0a3/15e/0880a315e7fea15942d1b370ecb68ef2.png)
Путь до каталога bin устанавливается командой:
setx /m path "%path%;C:\mysql\bin;"
Если каталог "bin" находится в другой директории, запись команды должна соответствовать полному пути! Командная строка должна быть запущена от имени администратора! Иначе будет ошибка ( рис. 12 ).
![Рис. 12 Рис. 12](https://habrastorage.org/getpro/habr/upload_files/48e/a08/b68/48ea08b68bfe996b0b6e362cd466c47a.png)
Запуск консоли от имени администратора характеризуется адресом "C:\Windows\system32". Успешное добавление пути к каталогу "bin" ( рис. 13 ) можно проверить, только запустив новое ( новый процесс ) окно консоли, чтобы обновить содержание переменных среды.
![Рис. 13 Рис. 13](https://habrastorage.org/getpro/habr/upload_files/5dc/121/26d/5dc12126d0d0ac9c24eeb92b5e82e994.png)
Как следует из вывода нового процесса ( консоли ), вначале выводятся пути системного окружения, а затем - пользовательского.
![Рис. 14 Рис. 14](https://habrastorage.org/getpro/habr/upload_files/e9d/b6e/c51/e9db6ec5152dee0456aad34d344838e0.png)
В этом же, новом окне, или в другом вновь запущенном окне командной строки можно запускать сервер MySQL, теперь указывая лишь имя исполняемого файла "mysqld" ( рис. 15 - 16 )
![Рис. 15 Рис. 15](https://habrastorage.org/getpro/habr/upload_files/7b9/f3a/e4d/7b9f3ae4db3e41d715004cccbd2f08ec.png)
Аналогичным образом теперь можно запускать и клиент ( рис. 16 ).
![Рис. 16 Рис. 16](https://habrastorage.org/getpro/habr/upload_files/26d/097/cc4/26d097cc47e924c5cf19e7a8d13791d0.png)
Варианты с powershell - кому интересно. И на всякий случай - "мануал по powershell от производителя" - еле выпросил. Ну, что ни сделаешь ради любимых читателей :-). Примечательно, что обращение к командам setx в powershell идет через двойное двоеточие аналогично обращению к константам внутри класса, например в PHP:
self::CONSTANT
Итоги и рекомендации
Манипулирование переменными среды ( окружения ), конечно, удобно, т. к. упрощает ввод команд запуска исполняемых файлов, но не во всех случаях. Запустить таким способом, к примеру, 2 или 3 процесса ( сервера ) MySQL одновременно и в одной той же операционной системе уже не получится. Придется запускать каждый процесс, полностью прописывая в командной строке путь до каждой отдельной папки "bin". Кроме того, если запускать MySQL в нескольких экземплярах, как службу, нужно иметь ввиду, что все службы должны иметь уникальные имена. Если же необходимость запускать несколько копий сервера одной и той же СУБД отсутствует, можно смело пользоваться переменными окружения. При частом использовании сервера проще установить MySQL, как службу, и поставить ее на автозапуск, чтобы сервер запускалсся при старте операционной системы. Эти варианты я постараюсь описать в следующих материалах.
Сопутствующие публикации
Как установить СУБД MySQL noinstall ZIP Archive на Windows
Источники
Комментарии (9)
FanatPHP
24.08.2023 10:23+2Эээ… Я правильно понимаю, что это целая статья на Хабре про то, как добавить программу в PATH на винде? Причем с совершенно не относящимся к ней заголовком и не имеющая отношения к хабу, в котором она размещена?
proletariy Автор
24.08.2023 10:23-4Есть одна история про зайца и черепаху, которые бежали наперегонки… А про правильность понимания… Чтобы ответить на этот вопрос, необходимо исследовать ваше сознание на предмет адекватности восприятия окружающего мира. Поэтому вынужден оставить вопрос в этой части без ответа. Не хватает аргументов для анализа. Постарайтесь выразить ваше мнение подробнее или переформулируйте вопрос.
xface
24.08.2023 10:23Чем не устроил нативный установщик mysql-8.1.0-winx64.msi?
proletariy Автор
24.08.2023 10:23-1Дело - не в +х и -х способов установки какой-то версии. Дело - конкретно в noinstall archive. По автоустановщику полно материала. По неинсталляционной версии хорошего материала с подробным разбором в Рунете мало. Кроме того в первой статье я расписал возможные причины увлечься noinstall-версией. Ссылка - в конце статьи.
benjik
...
PROFIT!
proletariy Автор
Docker сильно грузит мой 12-ядерный ультрабук в пластиковом корпусе (охлаждение стандартное - греется сильно). К сожалению, пока не могу полноценно освоить эту технологию. Но уже реанимировал стационарный комп и в ближайшие полгода, планирую «добить» его) Благодарю за предложение. Обязательно напишу об этом.
Didntread
вы про docker desktop? Постоянная загрузка cpu на 100% у меня решилась отключением у него обновлений и перезапуском
proletariy Автор
Очевидно, про него. Давно это было )). Версия с графическим интерфейсом для windows. Загрузка процессора была, но не 100%, конечно, но 7-8% накидывало в простое и при запуске сервиса где-то также. Отключить обновления - хорошая мысль! Попробую. А вообще понимаю, что эта технология - далеко не под windows. Но на linux пока полностью перейти не могу. У меня бук HP - под него драйверы только для windows. Пробовал устанавливать и Ubuntu, и Mint, и еще что-то - грузит проц на 16-20%. В итоге- постоянный перегрев. Работать невозможно. Кроме того у меня еще свои, офисные, дела, а там с Libre и OpenOffice пока не получается работать. К сожалению, детальные функции разметки, которыми я часто пользуюсь, есть пока только в ворде. Так и живем.
ValeryV
Попробовать Докер можно на сервере. JB Gateway позволяет через GUI пробросить порты с сервера на localhost, либо через консоль (ssh port forwarding).