MySQL日志文件之错误日志和慢查询日志详解

       今天天气又开始变得很热了,虽然很热很浮躁,但是不能不学习,我在北京向各位问好。今天给大家分享一点关于数据库日志方面的东西,因为日志不仅讨厌而且还很重要,在开发中时常免不了与它的亲密接触,就在前几天公司开发环境中的几张数据表不知道被谁误删了,想看看日志但是一直没有过这方面的经历,于是望门却步了。

MySQL数据库官方文档:https://dev.mysql.com/doc/refman/5.7/en/server-logs.html

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

  1. 错误日志(Error log)
  2. 慢查询日志(Slow query log)
  3. 二进制日志
  4. 查询日志

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

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

 三、慢查询日志详解:MySQL慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指SQL语句运行时间超过long_query_time值的SQL,则会被记录到慢查询日志文件中。long_query_time的默认值为10秒,意思是运行10s以上的SQL语句都会被MySQL数据库记录到慢日志文件中去。但是默认情况下,MySQL数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表中,当然,这些情况你必须得一个一个来手动设置才行。

【查看MySQL数据库默认的阀值时间】

【查看MySQL数据库是否开启慢查询日志记录,默认是关闭的】

【开启MySQL数据库慢查询日志】

【好了,到这儿如果你已经开启了MySQL数据库的慢查询日志,则可以查看慢查询日志存放的位置】

       更该慢查询日志的存储方式,因为默认是将慢查询日志记录到文件类型中的,如果你想将这些日志记录到数据表中,则可以通过如下设置。

【查看慢查询日志的默认存储方式】

【改变MySQL数据库慢查询日志的存储方式为:TABLE】

       好了,走到这步我们完全把MySQL数据库的慢查询日志的开启和一些常见的设置给各位简单介绍了一下。下面我们来测试一下慢查询日志,因为慢查询日志在开发中可以帮助我们记录一些执行时间比较长的SQL语句,我们可以通过它来优化哪些检索语句。这里我简单模拟一下慢查询,使用MySQL数据库的sleep(N)函数来假装让执行语句停留10秒,最后我们可以到记录慢查询日志的数据表中看到这条记录。

       对于日志这块的学习,我还在继续,最后在这儿留点希望吧,"如何在日志文件中快速的定位和提取有用的信息,还有当执行误删库和表的操作时如何通过日志恢复"等这些问题我一直在不断的在学习,如果哪位老哥有这方面的经验或资料,可以传授我一点儿,万分感激。

原文地址:https://www.cnblogs.com/1315925303zxz/p/7232608.html