学习笔记之MySQL 日志文件管理

Posted 705xinguan

tags:

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

mysql 日志文件分为4种:错误日志、通用查询日志、慢查询日志和二进制日志。

1.错误日志:记录MySQL 服务器的启动、运行或停止时出现的问题。

  (1)启动和设置错误日志

          默认情况下会开启错误日志功能,而且,错误日志无法被禁止。打开数据安装目录下的my.ini 文件找到log-error 选项进行查看,具体如下:

          # Error Logging.

          log-error="WS.err"

          log-error 选项指定mysqld 保存错误日志文件的位置,简单语法结构如下:

          log-erroe [=DIR/fire_name];

          上述语法中DIR 指定错误日志的路径,fire_name 是错误日志的名称,没有该参数时默认为主机名。

   (2)查询错误日志

         错误日志是一个文本文件,在该日志中记录着开启和关闭 MySQL 服务的时间,以及服务运行过程中的错误、警告和异常信息等。如果 MySQL 服务出现异常,可以打开错误日志查看原因。

    (3)删除错误日志

            MySQL 数据库可以使用两种方式开启新的错误日志:mysqladmin 命令和 FLUSH LOGS 语句。mysqladmin 命令的语法结构如下:

            mysqladmin -u root -p flash-logs

            执行上述命令完成后会自动创建一个新的错误日志,但是旧的错误日志会仍然保留着,只是对它的名称进行更改,在名称之后添加-old 内容。

            直接执行FLUSH LOGS 语句之前必须先登录到 MySQL 数据库中,这样创建好新的错误日志以后,数据库管理员可以将旧的错误日志备份到其他的硬盘上,如果旧的错误日志已经没有存在的必要,则可以直接删除。

2.通用查询日志:记录用户登录和查询的信息。

   通用查询日志通常会被称为一般查询日志或普通查询日志,它用来记录用户的所有操作,包括启动和关闭 MySQL 服务、更新语句和查询语句等。默认情况下,通用查询日志功能是关闭的。可以通过 SHOW GLOBAL VARIABLES 语句查询是否已经启用。语句和输出结果如下:

    mysql> SHOW GLOBAL VARIABLES LIKE ‘%general%‘;

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

    | Variable_name             | Value |

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

    | general_log                  | OFF |

    | general_log                  | WS.log |

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

    2 rows in set (0.00 sec)

3.慢查询日志:记录所有的执行时间超过指定时间的所有查询或不使用索引的查询。

   (1)启动慢查询日志

           默认情况下,慢查询日志功能是关闭的。可以直接通过 SHOW VARIABLES 语句查看慢查询配置。执行语句和输出结果如下:

           mysql> show variables like ‘%slow%‘;

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

           | Variable_name              | Value           |

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

           | log_show_admin_statements    | OFF      |

           | log_slow_slave_statements       | OFF       |

           | slow_launch_time            | 2             |

           | slow_query_log               | OFF        |

           | slow_query_log_fire            | WS-slow.log |

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

           5 rows in set (0.00 sec)

4.二进制日志:以二进制文件形式记录了数据库中的操作,但是不记录查询语句。

  (1)启用二进制日志

           my.ini 文件中的 log-bin 选项可以开启或关闭二进制日志。my.ini 文件中的代码如下:

           # Binary Logging.

           # log-bin

           于错误日志不同,默认情况下,二进制日志功能是关闭的,如果要开启它的功能,可以将 log-bin 选项前的“#“”去掉,然后为 log-bin 选项指定参数值。语法结构如下:

           log-bin [= DIR\[firename]]

  (2)查看二进制日志

           二进制日志是以二进制方式存储的,因此它并不能直接读取。如果要查看二进制日志的内容,必须使用 mysql 自带的 mysqlbinlog 命令工具进行查看。执行该命令时必须指定查看二进制日志文件的路径,否则将会找不到指定的二进制文件。

  (3)清理二进制日志

          常见的几种清理二进制日志文件的方法:

          1.删除所有二进制文件,语法如下:

             RESET MASTER;

          2.根据编号进行删除,语法如下:

             PURGE MASTER LOGS TO ‘firename.number‘;

          3.根据创建时间进行删除,语法如下:

             PURGE MASTER LOGS BEFORE ‘yyyy-mm-dd hh:mm:ss‘;

    (4)恢复二进制日志,语法如下:

            mysqlbinlog firename.number | mysql -u root -p

 

以上是关于学习笔记之MySQL 日志文件管理的主要内容,如果未能解决你的问题,请参考以下文章

MySQL学习笔记之六:MySQL日志

大白话系统MySQL 学习总结 之 缓冲池(Buffer Pool) 的设计原理和管理机制

mysql日志管理笔记

Mysql DBA 高级运维学习笔记-Mysql数据库中的日志文件

MongoDB 学习笔记之 入门安装和配置

MYSQL进阶学习笔记四:MySQL存储过程之定义条件,处理过程及存储过程的管理!(视频序号:进阶_11,12)