说明
有时候需要在MySQL服务器层面去查找sql的执行记录,例如有多个应用的时候,希望看到MySQL的SQL执行情况。
查询日志功能是否开启
执行SQL命令:
SHOW VARIABLES LIKE 'general%';
mysql> SHOW VARIABLES LIKE 'general%'; +------------------+---------------------------------+ | Variable_name | Value | +------------------+---------------------------------+ | general_log | OFF | | general_log_file | /var/lib/mysql/1ae64709485d.log | +------------------+---------------------------------+ 2 rows in set (0.00 sec)
general_log:日志功能是否开启,默认关闭OFF,开为ON
general_log_file:日志文件保存位置
开启日志
执行SQL,set GLOBAL general_log='ON';,如下:
mysql> set GLOBAL general_log='ON'; Query OK, 0 rows affected (0.05 sec)
现在再去查:SHOW VARIABLES LIKE 'general_log'; 会显示ON了,说明SQL日志已经开启
根据上面查询得到日志文件的路径,使用tail命令可以查询SQL执行日志了:
tail -f /var/lib/mysql/1ae64709485d.log
说明
开启日志后SQL数量是很大的,建议问题查好后,就关闭,负责可能影响服务器性能。
文章评论