如何在 MySQL/MariaDB 服务器中启用慢查询日志

当我们进行故障排除并且想要确定哪些数据库查询需要很长时间才能运行时,慢速查询会影响数据库性能和整体服务器性能。
慢查询日志是对需要很长时间执行的 SQL 查询的记录。
此外,默认情况下禁用慢查询日志。
如果我们想在 MariaDB/MySQL 服务器中启用慢查询日志,我们可以通过 MySQL CLI来实现,无需重新启动 MariaDB/MySQL 服务器或者对 my.cnf文件进行一些更改。

要在不重启的情况下在 MySQL 中启用慢查询日志,请按照下列步骤操作:

使用MySQL CLI登录mysql,如下所示:

# mysql -u root -p

默认情况下,慢查询日志文件位于 /var/lib/mysql/hostname-slow.log
更改日志路径或者文件名。
输入以下命令,用你的命令替换/path/filename

MariaDB [(none)]> SET GLOBAL slow_query_log_file = '/path/filename';

此步骤是可选的,默认情况下,当启用慢查询日志时,它会记录运行时间超过“10 秒”的任何查询。
要更改此间隔,执行以下命令,将“X”替换为以秒为单位的时间:

MariaDB [(none)]> SET GLOBAL long_query_time = X;

最后,通过运行以下命令启用慢查询:

MariaDB [(none)]> SET GLOBAL slow_query_log = 'ON';

通过执行以下命令验证配置:

MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE 'slow_%';
+---------------------+---------------------------------+
| Variable_name       | Value                           |
+---------------------+---------------------------------+
| slow_query_log      | ON                              |
| slow_query_log_file | /var/lib/mysql/slow-queries.log |
+---------------------+---------------------------------+
2 rows in set (0.001 sec)
MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE 'long_query_time';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 rows in set (0.001 sec)

完成故障排除后,禁用慢查询日志。
为此,再次运行“MySQL CLI”,然后键入以下命令:

MariaDB [(none)]>  SET GLOBAL slow_query_log = 'OFF';
日期:2020-06-02 22:17:38 来源:oir作者:oir