Назад | Перейти на главную страницу

Пакетный файл MySQL XAMPP

Я использую XAMPP для запуска Apache, PHP и MySQL на нескольких удаленных ноутбуках для наших клиентов. Это просто каталог XAMPP со всеми файлами (версия флэш-накопителя, значения реестра не добавляются и не изменяются). У меня есть установочный файл, который помещает на рабочий стол пользователя значок, запускающий start.bat из каталога XAMPP. Start.bat в основном запускает Apache, затем MySQL, а затем открывает браузер для localhost. Все работает отлично, за исключением того, что при втором щелчке по значку запускается вторая служба mysqld.exe. Apache не запускается дважды, если дважды щелкнуть значок, но MySQL запускается. Я попробовал несколько предложений Google и Stack Overflow, чтобы проверить, запущена ли служба, и, если да, остановить повторный запуск службы; однако ни один из них не работал.

Пакетный файл, запускающий MySQL, в основном содержит одну команду:

mysql\bin\mysqld --defaults-file=mysql\bin\my.ini --standalone --console

Как я могу предотвратить запуск mysqld.exe дважды? Кроме того, это большая проблема, если он запускается дважды? Будет ли это вызывать какие-либо проблемы при выполнении запроса из PHP?

Я также разместил это на StackOverflow (один из наших разработчиков задал тот же вопрос). Вот ответ, который я нашел путем проб и ошибок (и молитв!):

Измените mysql_start.bat, чтобы получить это содержимое:

@echo off 
apache\bin\pv mysqld.exe %1 >nul 
if ERRORLEVEL 1 goto Process_NotFound 
echo MySQL is running 
goto END 
:Process_NotFound 
echo Process %1 is not running 
mysql\bin\mysqld.exe --defaults-file=mysql\bin\my.ini --standalone --console
goto finish 
:finish

Это проверяет, запущена ли служба, и запускает ее, если нет.