MySQL 记录所有SQL和慢SQL

通过配置文件配置日志

my.cnf 位置

查看自己版本 MySQL 默认读取配置文件的路径


mysql --help | grep my.cnf

我的这个版本的 MySQL 会以以下顺序读配置文件

  1. /etc/my.cnf

  2. /etc/mysql/my.cnf

  3. /usr/local/etc/my.cnf

  4. ~/.my.cnf

如果使用了自定义位置可以通过查看进程启动参数 --defaults-file


ps aux | grep mysqld

日志配置

通用SQL日志 (General Query Log)

记录所有mysqld做的事,连接、断开、查询。


# 通用SQL日志

general_log_file        = /var/log/mysql/mysql.log

general_log            = 1

慢SQL日志 (Slow Query Log)

记录慢SQL

long_query_time 默认10,单位秒;SQL执行时间比long_query_time长的都会被记录。


# 慢SQL日志

log_slow_queries = /var/log/mysql/mysql-slow.log

long_query_time = 10

log-queries-not-using-indexes = ON

在运行时开启日志

开启日志,登录 mysql client (mysql -u root -p) 然后执行:


SET GLOBAL general_log = 'ON';

SET GLOBAL slow_query_log = 'ON';

关闭日志,登录 mysql client (mysql -u root -p) 然后执行:


SET GLOBAL general_log = 'OFF';

SET GLOBAL slow_query_log = 'OFF';

即时生效,不需要重启。

查看日志文件位置


show variables like '%log_file';

原文链接

你可能感兴趣的:(MySQL 记录所有SQL和慢SQL)