MySQL慢查询日志是MySQL提供的一种日志记录,它用于记录执行时间超过指定参数(long_query_time)的SQL语句。
设置慢查询日志的步骤如下:
-
开启慢查询日志
在MySQL的配置文件(my.cnf或者my.ini,取决于操作系统)中设置以下参数:
[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
-
slow_query_log
:设置为1
开启慢查询日志。 -
slow_query_log_file
:慢查询日志文件的路径。 -
long_query_time
:查询超过该时间(秒)的就会被记录,最小为1,建议设置为2秒以上以避免过多的系统开销。
-
重启MySQL服务
在配置文件修改后,需要重启MySQL服务使配置生效。
sudo systemctl restart mysql
或者
sudo service mysql restart
-
查看慢查询日志配置
登录MySQL后,通过以下命令查看慢查询日志配置:
SHOW VARIABLES LIKE 'slow_query_log';
SHOW VARIABLES LIKE 'slow_query_log_file';
SHOW VARIABLES LIKE 'long_query_time';
确保这些设置已经正确生效。
注意:在生产环境中,慢查询日志文件应该有适当的权限设置,避免未授权访问。
另外记录服务器的cpu消耗日志记录,并后台运行命令(每10秒记录一次):
(while true; do date && top -b -n 1 | grep "Cpu(s)" ; sleep 10 ; done) >> /usr/log/cpu_mem.log 2>&1 &