For Windows, I've switched to a BAT file to speed up the process (which I call from SlickRun).
BEFORE using the script, you will want to have the following in your MySQL config file (in Laragon, use the right button menu -> mysql -> my.ini) in the [mysqld] section.
log-output=FILE
general_log_file = "C:/whatever/mylog.txt"
general_log = OFF
@echo off set /p state="Set MySQL Logging state ON or OFF: " c:\xampp\mysql\bin\mysql -u "root" -e "SET GLOBAL general_log = '%state%'; %SystemRoot%\explorer.exe "C:\whatever"
A better alternative is to output to a table. In your MySQL config file (in Laragon, use the right button menu -> mysql -> my.ini) in the [mysqld] section, add
log-output=TABLE (see docs (MySQL 5.7))
general_log = OFF
Then your script would be
@echo off set /p state="Set MySQL Logging state ON or OFF: " c:\xampp\mysql\bin\mysql -u "root" -e "SET GLOBAL general_log = '%state%';
You will find the data in the mysql.general_log table. What I do to make is easier to grok is to create a table with queries that I want to ignore (e.g. the standard PrestaShop code at the beginning of a page load).
create table mysql.general_log_ignores
(
argument_to_ignore mediumblob null
);
and then select only the interesting queries with
select event_time, convert(argument using utf8) from general_log gl left join general_log_ignores gli on gl.argument = gli.argument_to_ignore where gli.argument_to_ignore is null order by gl.event_time;