[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

【简单讲解】如何记录rotate MySQL的slow.log文件

你好。


是一名学徒工程师

 

大家是否也有这样的时刻呢? ?

“好吧,现在我有一些空闲时间,我可能会尝试输入 df 命令。”

“嗯,/目录使用率为95%??”

“哪一种最常见?”

“我、我,这是什么时候的事啊!?MySQL 的slow.log 文件堆积了这么多!?”

“我必须做点什么……但我该怎么办!!!”

在这种情况下,请使用日志轮转。

什么是日志轮换?

首先,我们来看看这些词的含义。

记录…“记录”

旋转……“循环、轮流”

综上所述,替换记录的意思是“替换日志文件”。

man 命令的结果还显示:

logrotate 旨在简化生成大量日志文件的系统的管理。
专为易于管理而设计。 日志文件可以自动轮换、压缩、删除和通过电子邮件发送。
日志文件可以自动轮转、压缩、删除和邮寄。 每个日志文件每天、每周、每月或当它变得太大时都会被处理。
每个日志文件每天、每周、每月或当它变得太大时都会被处理。

换句话说,它是一种避免压缩或删除大量日志文件以免压垮磁盘空间的技术。

目标

在本文中,我们将压缩存储MySQL慢查询的慢日志。

设置如下。

设置详情 价值
要保留的日志 /var/lib/mysql/localhost-slow.log
轮换周期 日常的
保留代数 7(一代)
日志判断时间慢 1.0(秒)

环境

操作系统/软件包 版本
核心 3.10.0
中央操作系统 7.2.1
MySQL 8.0.31
对数旋转 3.8.6

混凝土流动

MySQL慢查询日志输出设置

*省略MySQL安装。

检查初始设置

登录 MySQL 后输入以下命令。

显示类似“%slow%”的变量;

○输出结果示例

+--------------------------------------+-------------------- --- -----------+ | 变量名 | +-------------------------- --+- ----------------------------------+ | log_slow_extra | 关闭 | | log_slow_slave_statements | 慢速查询日志 | /var/lib/mysql-slow.log | -----------+------------------------------------------------ -+ 7集合中的行(0.31 秒)

通过打开slow_query_log,慢日志似乎输出到/var/lib/mysql/localhost-slow.log。

 

设置判断时间为慢查询

设置全局 long_query_time = 1.0;

使用以下命令验证是否已进行更改

显示全局变量如“%query_time%”;

○输出结果

+----------------+----------+ | 变量名称 | +-------------- ---+----------+ | 1.000000 | +----------------+----------+一组 1 行(0.01 秒)

 

打开慢查询日志输出设置

设置全局 Slow_query_log = 'ON';

如果以下命令的输出与示例输出结果类似,则没有问题。

显示全局变量如“%slow_query%”;

○输出结果示例

+--------------------------------+---------------------------------------- --------+ | 变量名 | +--------------------+------------ - ----------------------+ | Slow_query_log_file | /var/lib/mysql/localhost-slow.log | -------------------+---------------------------------------- -- --+ 2 行一组(0.03 秒)

 

 

为 FLUSH LOG 创建用户

创建由“[任何密码]”标识的用户“flush”@“localhost”;

要检查是否已经创建,除了下面命令输出中用户是否存在外,如果实际登录成功就OK了。

从mysql.user中选择用户、主机;

 

 

授予用户 FLUSH LOG 权限

将 *.* 上的重新加载授予 'flush'@'localhost';

要检查它是否已创建,请检查以下命令的输出中是否已授予预期权限。

显示 'flush'@'localhost' 的补助金;

○输出结果示例

+------------------------------------------------ ----+ | 资助flush@localhost | +------------------------------------ - ---------------+ | 授予重新加载、处理 *.* 到 `flush`@`localhost` | +------------- -- ----------------------------------+ 一组 1 行(0.04 秒)

调整创建的flush用户登录时的权限

vi /var/lib/mysql/.my.cnf

○编辑内容

[client] user=flush 密码=[4.1.4中输入的密码。]

 

重新打开日志文件

mysql --defaults-extra-file=/var/lib/mysql/.my.cnf -e "刷新慢日志;"

如果没有输出错误就成功了!

日志轮换设置

  1. 编辑slow.log轮换配置文件
  2. 试运行

编辑slow.log轮换配置文件

移动到工作目录
cd /etc/logrotate.d/
编写配置文件

*请创建为root用户
(要求是1)文件所有者/组是root:root 2)文件权限是644)

vi mysql

↓描述内容

/var/lib/mysql/*slow.log { dailyrotate 7 dateextmissingoknotifemptysharedscriptsdelaycompresscopytruncatecompresspostrotate#只要mysqld确实在运行iftest-x/usr/bin/mysqladmin/usr/bin/mysqladmin--defaults- extra-file=/var/lib/mysql/.my.cnf ping &> /dev/null 然后 mysql --defaults-extra-file=/var/lib/mysql/.my.cnf -e "FLUSH SLOW LOGS; “ fi 尾稿 }

*解释

我们将解释上面的设置示例。
*还有很多选择,有兴趣的话请看一下。您可以使其适应您想要执行的条件和情况。

  1. 每天(默认每周)
    每周轮换
  2. 旋转[任意数字] *这次 7
    决定要保留的代数
  3. missingok
    即使日志文件不存在也继续处理而不出错
  4. notifempty
    如果日志文件为空,则不旋转日志文件
  5. 延迟压缩 *与压缩结合使用,
    将日志压缩延迟到下一次循环。指定压缩
  6. copytruncate复制
    日志文件并删除源内容
  7. compress
    使用 gzip 压缩旋转日志
  8. postrotate ~ endscript
    之间写入的命令
    (在此示例中,如果建立了与 mysql 的 ping 通信,则将重新加载 Slow.log 文件。)

试运行

现在,剩下要做的就是希望不要发生错误。

logrotate -dv /etc/logrotate.d/mysql

会输出要执行的内容,所以如果没有错误语句就OK了。

最后

这次,我们介绍如何轮转MySQL的slow.log文件!

当服务运行时,日志不可避免地会积累。

不是每个人都能无限扩展磁盘容量,所以请明智地轮换磁盘,节俭生活!

如果您觉得这篇文章有帮助,请点赞!
7
加载中...
7 票,平均:1.00 / 17
4,417
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

写这篇文章的人

关于作者

诚实地

我是一名见习工程师。