如何启用 MySQL 的查询日志(查看所有 SQL 查询)

如何启用 MySQL 的查询日志(查看所有 SQL 查询)

当开发使用 MySQL 的应用程序时,实时观察正在发出的请求会很有用。

如何查看所有传入的 MySQL 查询?

答案1

以root身份编辑/etc/mysql/my.cnf并在底部添加此段落:

[mysqld]
general_log=on
general_log_file=/var/log/mysql/query.log

仍然以 root 身份运行以下命令:

service mysql stop
service mysql start

然后观察日志:

tail -f /var/log/mysql/query.log

请注意,此设置会使 MySQL 速度降低约 15%,因此当您不再需要该段落时,请删除或注释该段落(然后重新启动)。

答案2

虽然 Nicolas Raoul 的回答是正确的,但请注意,从 mysql-server-5.7 开始,该文件是由和/etc/mysql/my.cnf中的配置文件构建的。/etc/mysql/conf.d/etc/mysql/mysqld.conf.d

因此,要使解决方案奏效,/etc/mysql/mysqld.conf.d/mysqld.cnf必须修改文件:。因此,以下几行:

#general_log_file        = /var/log/mysql/mysql.log
#general_log             = 1

必须取消注释,保存文件,然后重新启动服务sudo service mysql restart

否则,您可能会收到错误。

答案3

使用 Linux Shell 脚本运行此命令

mysqladmin -uroot -p'mysql_password' -i 2 进程列表

将生成进程列表并每分钟自动刷新

相关内容