MySQL database logs

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.MySQL.LogFileSize.html

Aurora MySQL中有以下几种日志类型:

  • Error Log
  • Slow query log
  • General log
  • Audit Log

开启slow query log和general log

新建一个Aurora MySQL参数组,然后更改以下值:

  • General_log = 1(默认值为 0,即无日志记录)
  • Slow_query_log = 1(默认值为 0,即无日志记录)
  • Long_query_time = 2(记录运行时间超过 2 秒的查询)。默认是10s
  • log_output = FILE(将常规和慢速查询日志写入文件系统,并允许从 Amazon RDS 控制台查看日志);log_output =TABLE(将常规和慢速查询日志写入表,以便您可以使用 SQL 查询查看这些日志),如果使用了这个选项,则分别写入到mysql.general_logmysql.slow_log

image-20230625191716398

image-20230625191222967

image-20230625191247535

logout改为file,则将常规和慢速查询日志写入文件系统

image-20230625191330776

将参数组应用到Aurora集群,然后执行命令确认生效:

 show variables like 'log_output';

image-20230625111330074

测试慢查询

执行一条慢查询:

select sleep(7);

过一会后在RDS控制台下载日志:

image-20230626142518032

日志中记录了该查询:

image-20230626142444666

清理日志

如果将slow log和general log保存到table里,随时时间增长量可能越来越大,执行以下命令用于清理日志:

PROMPT> CALL mysql.rds_rotate_slow_log;
PROMPT> CALL mysql.rds_rotate_general_log;