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日志体系的主要内容,如果未能解决你的问题,请参考以下文章