在 CentOS 上开启 MySQL 慢查询日志(Slow Query Log),一般步骤如下(以 MySQL 5.7 / 8.0 为例,CentOS 7/8 通用):
mysql -u root -p
SHOW VARIABLES LIKE 'slow_query%';
SHOW VARIABLES LIKE 'long_query_time';
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log';
SET GLOBAL long_query_time = 1; -- 超过 1 秒算慢查询
SET GLOBAL log_queries_not_using_indexes = 'ON';
vi /etc/my.cnf
或(MySQL 8.0 常见)
vi /etc/my.cnf.d/mysql-server.cnf
[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1
log_queries_not_using_indexes = 1
mkdir -p /var/log/mysql
touch /var/log/mysql/slow.log
chown -R mysql:mysql /var/log/mysql
systemctl restart mysqld
SHOW VARIABLES LIKE 'slow_query_log';
查看慢日志:
tail -f /var/log/mysql/slow.log
mysqldumpslow /var/log/mysql/slow.log
如果你用的是 MariaDB 或 Docker 中的 MySQL,可以告诉我,我给你对应版本的做法。