MySQL日志体系

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL日志体系相关的知识,希望对你有一定的参考价值。

日志对一个系统或者应用来说是非常的重要的,排错或解决故障,第一时间都是看错误日志

一、mysql日志分类:日志文件记录了影响数据库的各种类型活动,MySQL数据库常见的日志文件分类。

错误日志(Error log) --如果日志不存在,flush logs会卡主,如果想备份错误日志,必须要重新新建一个,并赋予权限,在执行flush logs;

慢查询日志(Slow query log) -- 如果日志不存在,flush logs会提示日志文件不存在,也不会创建,,如果想备份慢查询日志,必须要重新新建一个,并赋予权限,在执行flush logs;

二进制日志(binary log) -- 生成一个新的二进制文件

查询日志 (general_log) -- 如果不存在,mysql会自动生成一个

注意:以上的日志,当执行flush logs时,mysql实例将关闭并重新打开日志文件

二、错误日志详解:MySQL错误日志是记录MySQL 运行过程中较为严重的警告和错误信息,以及MySQL每次启动和关闭的详细信息。

【查看MySQL数据库错误日志存放的位置】

mysql> show variables like ‘log_error‘;

+---------------+---------------------+

| Variable_name | Value |

+---------------+---------------------+

| log_error | /var/log/mysqld.log |

+---------------+---------------------+

1 row in set (0.01 sec)

my.cnf

log-error=/var/log/mysqld.log -- 或mysql实例中显示的有些不同

模拟错误日志:

三、慢查询日志

和慢查询日志有关的参数:

slow_query_log=on|off #是否开启慢查询日志

slow_query_log_file=filePathAndName; #指定慢查询日志文件的路径和文件名,默认在data目录

long_query_time=5 #指定多少秒没有返回结果的语句记录日志,即超过该时间就被认为是慢查询

log_queries_not_using_indexes #记录所有没有使用到索引的查询语句

min_examined_row_limit=1000 #记录由于查询了多于1000次而导致的慢查询

log_slow_admin_statements #记录慢的那些OPTIMIZE TABLE、ANALZE TABLE和ALTER TABLE语句。因为这些语句本身内部会执行查询,如alert table会先查询出来再进行修改。

log_slow_slave_statements #记录由slave所产生的慢查询

log_output=FILE|TABLE #如果选择table select * from mysql.slow_log;

设置参数:

set @@global.log_output=‘FILE‘;

set global log_output=‘TABLE‘;

select @@log_output;

select @@global.log_output;

show global variables like ‘log_output‘;

show variables like ‘log_output‘;

?

模拟慢查询日志: select sleep()

以上是关于MySQL日志体系的主要内容,如果未能解决你的问题,请参考以下文章

MySQL体系结构

MySQL体系-日志与MVCC(源码层面)

MySQL体系-日志与MVCC(源码层面)

MySQL技术内幕 InnoDB存储引擎 之 InnoDB体系架构

面试官:了解mysql的架构体系吗?

Java进阶:java写个人博客