温馨提示×

ubuntu mysql如何开慢查询

小樊
49
2026-10-07 00:26:52
栏目: 云计算

在 Ubuntu 上开启 MySQL 慢查询日志,一般有两种方式:临时生效(重启失效)和永久生效(修改配置文件)。下面以常见版本(MySQL 5.7 / 8.0)为例说明。


一、确认 MySQL 是否运行

systemctl status mysql

二、临时开启慢查询(不用重启)

登录 MySQL:

mysql -u root -p

执行:

-- 开启慢查询日志
SET GLOBAL slow_query_log = 'ON';

-- 慢查询日志文件位置
SET GLOBAL slow_query_log_file = '/var/log/mysql/mysql-slow.log';

-- 超过多少秒算慢查询(如 1 秒)
SET GLOBAL long_query_time = 1;

-- 记录未使用索引的查询(可选)
SET GLOBAL log_queries_not_using_indexes = 'ON';

查看是否生效:

SHOW VARIABLES LIKE 'slow_query_log';
SHOW VARIABLES LIKE 'long_query_time';

⚠️ 重启 MySQL 后失效


三、永久开启慢查询(推荐)

编辑 MySQL 配置文件:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

(有些版本是 /etc/mysql/my.cnf)

在 [mysqld] 下添加:

[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 1
log_queries_not_using_indexes = 1

保存后重启 MySQL:

sudo systemctl restart mysql

四、确保日志文件权限正确

sudo touch /var/log/mysql/mysql-slow.log
sudo chown mysql:mysql /var/log/mysql/mysql-slow.log

五、查看慢查询日志

sudo tail -f /var/log/mysql/mysql-slow.log

或使用官方工具分析:

sudo mysqldumpslow /var/log/mysql/mysql-slow.log

六、常用参数说明

参数 说明
slow_query_log 是否开启慢查询
slow_query_log_file 日志路径
long_query_time 慢查询阈值(秒)
log_queries_not_using_indexes 记录未走索引的 SQL

如果你告诉我 MySQL 版本 或 Ubuntu 版本,我可以给你更精确的配置示例。

0 踩