文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL日志

2015-07-09 21:30

关注

一、MySQL日志类型简介

    在MySQL中,主要有5种日志文件:

日志类型 写入日志的信息
错误日志(Error log) 启动,运行或停止mysqld遇到的问题
通用查询日志(General query log) 建立的客户端连接和从客户端收到的语句
二进制日志(Binary log) 记录更改数据的语句(也用于复制)
中继日志(Relay log) 从主服务器收到的数据更改
慢查询日志(Slow query log) 记录执行耗时超过long_query_time的查询
DDL日志(metadata log) DDL语句执行的元数据操作

二、各大日志类型简单介绍

1.错误日志

    错误日志文件默认为datadir目录下的 hostname.err文件,hostname表示当前的主机名。当然你也可以通过在[mysqld]配置下配置log-error=[file_path]来指定错误日志文件的名字和路径。MySQL启动时如果没有错误日志,则会自动创建错误日志,但是如果在运行时删除了错误日志则不会重新创建。
如果不知道错误日志的位置,可以在MySQL命令行通过变量log_error来查看。

mysql> show variables like "log_error";
+---------------+----------------------------------------+
| Variable_name | Value                                  |
+---------------+----------------------------------------+
| log_error     | ./luther.err |
+---------------+----------------------------------------+

2.通用查询日志

    常规查询日志是mysqld在做什么的常规记录 。当客户端连接或断开连接时,服务器会将信息写入此日志,并按照接收语句的顺序记录从客户端收到的每个SQL语句。查询日志默认是关闭的,默认为datadir目录下的 hostname.log文件,hostname表示当前的主机名。当然你也可以通过在[mysqld]配置下配置general_log=ON来打开查询日志、general_log_file=[file_path]来指定查询日志文件的名字和路径。因查询日志在生产中一般是不会打开的(不推荐打开,因为查询日志记录的太多,会导致频繁IO消耗大量资源),所以此处不做过多介绍,有兴趣的请参考官网。

3.二进制日志(详细待补充,查看详细可以参考https://blog.csdn.net/demonson/article/details/80664141)

    二进制日志包含描述数据库更改(例如表创建操作或表数据更改)的事件。除非是使用基于行的日志记录,否则它还包含针对可能进行了更改的语句的事件(例如, DELETE不匹配任何行)。二进制日志还包含有关每个语句更新数据花费时间的信息。二进制日志有两个重要目的:

    二进制日志文件默认为hostname-bin开始的文件(例如:mysql-bin.000001和mysql-bin.index),hostname表示当前的主机名。

    二进制日志支持三种格式类型:

  1. 基于行的日志:主服务器将影响各个表行的事件写入二进制日志。 --binlog-format=ROW
  2. 基于语句的日志:基于SQL语句。 --binlog-format=STATEMENT
  3. 基于混合的日志:默认情况下使用基于语句的日志记录。 --binlog-format=MIXED

     查看二进制日志需要使用mysql客户端工具mysqlbinlog去查看

4.中继日志(详细待补充)

    中继日志也是一种二进制日志,只不过该日志是保存在从服务器中,是从服务器I/O线程将主服务器的二进制日志读取过来记录到从服务器本地文件,然后从服务器SQL线程会读取relay-log日志的内容并应用到从服务器,从而使从服务器和主服务器的数据保持一致。主要用于主从同步。

5.慢查询日志(详细待补充)

    慢查询日志记录了执行花费超过 long_query_time时间(查询获取锁(包括锁等待)的时间不计入查询时间内),并且有超过min_examined_row_limit行的结果的查询SQL。慢查询日志是在查询执行完毕且已经完全释放锁之后才记录的,因此慢查询日志记录的顺序和执行的SQL查询语句顺序可能会不一致(例如语句1先执行,查询速度慢,语句2后执行,但查询速度快,则语句2先记录)。默认情况下,慢查询日志是禁用的。要明确指定初始慢查询日志状态,请使用 --slow_query_log[={0|1}]。不带参数或参数为1时, --slow_query_log启用日志。参数为0时,此选项禁用日志。默认情况下,慢查询日志不记录管理语句(例如:ALTER TABLE等),也不记录不使用索引的查询。可以使用log_slow_admin_statements和  log_queries_not_using_indexes参数去修改该设置。

6.DDL日志(详细待补充)

    DDL日志或元数据日志记录由数据定义语句(如DROP TABLE和ALTER TABLE)生成的元数据操作,并将其写入MySQL数据目录(datadir)中的文件ddl_log.log中。 MySQL使用此日志从元数据操作中发生的crash中恢复。ddl_log.log是一个二进制文件,它不是想要人为可读的,所以你不应该以任何方式尝试修改其内容。在实际需要记录元数据语句之前,不会创建ddl_log.log,并在mysqld成功启动后被删除。因此,该文件可能不会以完全正常的方式运行在MySQL服务器上。目前,ddl_log.log最多可容纳1048573个输入,大小相当于4 GB。超出此限制后,您必须重命名或删除该文件,才能执行任何其他DDL语句。

    现在没有用户可配置的与此文件关联的服务器选项或变量。

 

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯