How can I enable MySQL's slow query log without restarting MySQL?
mysql
Solution
Try `SET GLOBAL slow_query_log = 'ON';` and perhaps `FLUSH LOGS;`
This assumes you are using MySQL 5.1 or later. If you are using an earlier version, you'll need to restart the server. This is documented in the MySQL Manual. You can configure the log either in the config file or on the command line.
Problem
I followed the instructions here: http://crazytoon.com/2007/07/23/mysql-changing-runtime-variables-with-out-restarting-mysql-server/ but that seems to only set the threshold. Do I need to do anything else like set the filepath? According to MySQL's docs ``` If no file_name value is given for --log-slow-queries, the default name is host_name-slow.log. The server creates the file in the data directory unless an absolute path name is given to specify a different directory. ``` Running ``` SHOW VARIABLES ``` doesn't indicate any log file path and I don't see any slow query log file on my server... EDIT Looks like I'm using server version 5.0.77, so I needed to do: ``` SET GLOBAL log_slow_queries = 1; ``` but I get: ERROR 1238 (HY000): Variable 'log_slow_queries' is a read only variable I assume I'm going to need to restart the server and have log_slow_queries set in my config?