有没有办法记录 MySQL 的每个查询?

有没有办法记录 MySQL 的每个查询?

我的 MySQL 服务器异常地占用了较高的 CPU 负载。因此,我查看了如何记录每个查询,发现很多教程都说了同样的事情:http://www.howtogeek.com/howto/database/monitor-all-sql-queries-in-mysql/

我按照教程操作,但日志文件中没有包含任何查询。我认为应该提一下的是,该/var/logs/文件夹mysql不存在,所以我创建了该文件夹并mysql.log在其中创建了一个名为的日志文件。

我的盒子的一些背景:

  • Arch Linux
  • Nginx
  • PHP/Ruby/Python/Perl
  • MySQL

答案1

默认情况下,mysql 将日志保存在工作目录中,通常是 /var/db/mysql。要启用日志记录,只需将变量设置general_log为“ON”。此外,您还可以将general_log_file变量设置为所需的位置。

SET @@global.general_log = 1;
SET @@global.general_log_file = '/where/to/store/log/file.txt';

答案2

查看慢速查询日志选项。

您可以在 dev.mysql.com 上找到详细信息

相关内容