【第四章】MySQL日志文件管理

1、日志文件管理概述:

配置文件:/etc/my.cnf

作用:MySQL日志文件是用来记录MySQL数据库客户端连接情况、SQL语句的执行情况以及错误信息告示。

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

错误日志:记录MySQL服务器的启动、运行、或停止时出现的问题(默认情况,只启用错误日志功能。)

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

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

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

  • error log 错误日志 排错 /var/log/mysqld.log【默认开启】
  • bin log 二进制日志 备份 增量备份 DDL DML DCL
  • Relay log 中继日志 复制 接收 replication master
  • slow log 慢查询日志 调优 查询时间超过指定值

【实例1】SHOW VARIABLES 语句查看是否启用了日志:

mysql> show variables like ‘log_%‘;
+----------------------------------------+----------------------------+
| Variable_name                          | Value                      |
+----------------------------------------+----------------------------+
| log_bin                                | ON                         |
| log_bin_basename                       | /data/mysql/yltlinux       |
| log_bin_index                          | /data/mysql/yltlinux.index |
| log_bin_trust_function_creators        | OFF                        |
| log_bin_use_v1_row_events              | OFF                        |
| log_error                              | /data/mysql/host130.err    |
| log_output                             | FILE                       |
| log_queries_not_using_indexes          | OFF                        |
| log_slave_updates                      | OFF                        |
| log_slow_admin_statements              | OFF                        |
| log_slow_slave_statements              | OFF                        |
| log_throttle_queries_not_using_indexes | 0                          |
| log_warnings                           | 1                          |

其中Value值是off的表示未开启服务。可以更改my.ini文件中的配置信息,重启mysql服务即可。

注:启用日志功能会降低MySQL数据的执行速度。

2、错误日志(err log)

 作用:error log 错误日志   排错    /var/log/mysqld.log【默认开启】

 2.1启动和设置错误日志:

  • 日志文件位置:log-error=/var/log/mysqld.log
  • 默认情况下错误日志是开启的,而且无法 被禁止,打开数据安装目录下的my.ini文件找到log-error选项进行查看:

【实例2】获取log-error变量的值,即获取error log的详细位置:

mysql> show variables like ‘log_error‘;
+---------------+-------------------------+
| Variable_name | Value                   |
+---------------+-------------------------+
| log_error     | /data/mysql/host130.err |
+---------------+-------------------------+
1 row in set (0.00 sec)

mysql> 

 2.2 查看错误日志

 【实例2】可知log_error的详细位置,下边部分error log:

[[email protected] ~]# more /data/mysql/host130.err

2018-05-25 19:20:15 5800 [Note] InnoDB: The InnoDB memory heap is
disabled
2018-05-25 19:20:15 5800 [Note] InnoDB: Mutexes and rw_locks use G
CC atomic builtins
2018-05-25 19:20:15 5800 [Note] InnoDB: Memory barrier is not used
2018-05-25 19:20:15 5800 [Note] InnoDB: Compressed tables use zlib
 1.2.3
2018-05-25 19:20:15 5800 [Note] InnoDB: Using Linux native AIO
2018-05-25 19:20:15 5800 [Note] InnoDB: Using CPU crc32 instructio

 2.3 删除错误日志

 目的:对于存放很久的错误日志,可以删除以保证MySQL服务器上的硬盘空间。

 方法:MySQL数据库中可以使用两种方法开启新的错误日志:mysqladmin命令和flush logs。

 mysqladmin 命令语法如下:

1、sqladmin -u root -p flush-log

  注:上述命令会创建一个新的错误日志,旧的仍然会 保留,在名称后边添加-old内容。

3、二进制日志

 作用:bin log 二进制日志 备份 增量备份 DDL DML DCL

   3.1 启用二进制日志

  • 默认情况下,二进制日志(bin-log)功能是关闭状态,如果要开启需要在 my.ini 文件中的 log-bin 选项前的 # 去掉。 

 【实例3】在my.ini 文件中指定 log-bin 选项的参数值,重新指定二进制日志文件的名称为 yangyang:

#Binary Logging
log-bin="yangyang"

 关闭my.ini 文件后重新启动MySQl服务器。

 【实例4】为了确保二进制日志功能已经开启,可执行如下命令:

mysql> show variables like ‘log_bin‘;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+
1 row in set (0.00 sec)

mysql> 

  3.2查看二进制日志

  • 二进制日志是以二进制的方式存储,不能直接打开,所以需要使用mysql 自带的 mysqlbinlog 命令工具进行查看

 【实例5】进入当前数据库的数据目录:

  • [[email protected] mysql]# pwd
    /data/mysql
    [[email protected] mysql]# mysqlbinlog yltlinux.000037
    /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
    /*!40019 SET @@session.max_insert_delayed_threads=0*/;
    /*!50003 SET @[email protected]@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
    DELIMITER /*!*/;
    # at 4
    #180525 19:20:25 server id 128  end_log_pos 120 CRC32 0xb6d0f986 Start: binlog v 4, server v 5.6.36-log created 180525 19:20:25 at startup
    # Warning: this binlog is either in use or was not closed properly.
    ROLLBACK/*!*/;
    BINLOG ‘
    efEHWw+AAAAAdAAAAHgAAAABAAQANS42LjM2LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAB58QdbEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAYb5
    0LY=
    ‘/*!*/;
    DELIMITER ;
    # End of log file
    ROLLBACK /* added by mysqlbinlog */;
    /*!50003 SET [email protected]_COMPLETION_TYPE*/;
    /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
    [[email protected] mysql]# 

    【实例6】查看二进制日志的文件目录:

  • mysql> show master logs;
    +-----------------+-----------+
    | Log_name        | File_size |
    +-----------------+-----------+
    | yltlinux.000001 |    178523 |
    | yltlinux.000002 |       143 |
    | yltlinux.000003 |       143 |
    | yltlinux.000004 |       143 |
    | yltlinux.000005 |       143 |
    | yltlinux.000006 |       143 |
    | yltlinux.000007 |       120 |
    | yltlinux.000008 |       927 |
    | yltlinux.000009 |       120 |
    | yltlinux.000010 |       120 |
    +-----------------+-----------+
    11 rows in set (0.46 sec)
    
    mysql>

 3.3  清理二进制文件

  原因:二进制日志文件会影响MySQL数据库性能,大量的二进制日志文件会占用大量磁盘空间。

  删除二进制文件的方法:

  1. 删除所有二进制文件,新的二进制文件会重新从 000001开始:
reset master;

  2.根据编号进行删除

 【实例7】删除 yltlinux.000005 之前的二进制日志,删除之后通过 SHOW MASTER  LOGS 语句查看文件列表:

mysql> purge master logs to ‘yltlinux.000005‘;
Query OK, 0 rows affected (0.10 sec)

mysql> show master logs;
+-----------------+-----------+
| Log_name        | File_size |
+-----------------+-----------+
| yltlinux.000005 |       143 |
| yltlinux.000006 |       143 |
| yltlinux.000007 |       120 |
| yltlinux.000008 |       927 |
| yltlinux.000009 |       120 |
| yltlinux.000010 |       120 |
+-----------------+-----------+
33 rows in set (0.00 sec)

mysql> 

  3.根据创建时间进行删除

  • purge master logs before 语句可以将指定时间之前的所有二进制文件删除;
  • purge master logs before ‘yyyy -mm-dd hh:mm:ss’;
mysql> purge master logs before ‘2018-02-01 22:46:00‘;
Query OK, 0 rows affected (0.07 sec)

mysql> show master logs;
+-----------------+-----------+
| Log_name        | File_size |
+-----------------+-----------+
| yltlinux.000032 |       143 |
| yltlinux.000033 |      6796 |
| yltlinux.000034 |       709 |
| yltlinux.000035 |       455 |
| yltlinux.000036 |       143 |
| yltlinux.000037 |       120 |
+-----------------+-----------+
6 rows in set (0.00 sec)

mysql> 

   3.4 恢复二进制日志

  原因:二进制日志记录着MySQL数据库的所有事件操作,当发生灾难性错误时,可以通过二进制日志进行恢复。

  【实例9】使用 mysqlbinlog 命令执行还原操作时,必须是编号小的首先被还原。

mysqlbinlog yltlinux.000001 | mysql -u root -p
mysqlbinlog yltlinux.000002 | mysql -u root -p

4.慢查询日志

  作用:用来记录执行时间超过指定时间的查询语句,可以找出那些查询语句执行效率低,以方便进行优化。

  •   默认情况下,慢查询日志功能是关闭的。
  •   如下语句查看慢查询的配置:

  

mysql> show variables like‘%slow%‘;
+---------------------------+------------------------------+
| Variable_name             | Value                        |
+---------------------------+------------------------------+
| log_slow_admin_statements | OFF                          |
| log_slow_slave_statements | OFF                          |
| slow_launch_time          | 2                            |
| slow_query_log            | OFF                          |
| slow_query_log_file       | /data/mysql/host130-slow.log |
+---------------------------+------------------------------+
5 rows in set (0.00 sec)

mysql> 

原文地址:https://www.cnblogs.com/yangleitao/p/9096976.html

时间: 2024-11-07 05:13:44

【第四章】MySQL日志文件管理的相关文章

第四章 目录和文件管理(二)

第四章  目录和文件管理(二) 享受生活 热爱挑战                                                                                                                          明远分享 每章一段话:                       无论做什么,你都要勇往直前:无论有多难,你都要多坚持一下.千万不要低估你实现梦想的能力.                   要求: Ø

第四章 MySQL高级查询(二)

第四章 MySQL高级查询(二) 一.EXISTS子查询 在执行create 或drop语句之前,可以使用exists语句判断该数据库对像是否存在,返回值是true或false.除此之外,exists也可以作为where语句的子查询,语法如下: SELECT --FROM 表名 WHERE  EXISTS(子查询): EXISTS关键字后面的参数是一个任意的子查询,如果该子查询没有返回行,则EXISTS子查询的结果为true,此时再执行外层查询语句.如果EXISTS子查询结果为false,此时外

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

MySQL 日志文件分为4种:错误日志.通用查询日志.慢查询日志和二进制日志. 1.错误日志:记录MySQL 服务器的启动.运行或停止时出现的问题. (1)启动和设置错误日志 默认情况下会开启错误日志功能,而且,错误日志无法被禁止.打开数据安装目录下的my.ini 文件找到log-error 选项进行查看,具体如下: # Error Logging. log-error="WS.err" log-error 选项指定mysqld 保存错误日志文件的位置,简单语法结构如下: log-er

第四章 MySQL程序

目录 4.1 MySQL程序概述 4.2 使用MySQL程序 4.2.1 调用MySQL程序 4.2.2 连接MySQL服务器 4.2.3 指定程序选项 4.2.4 在命令行使用选项 4.2.5 程序选项编辑器 4.2.6 使用选项文件 4.2.7 影响文件选项处理的命令行选项 4.2.8 使用选项设置程序变量 4.2.9 选项默认值,选项期望值和=符号 4.2.10 设置环境变量 4.3 MySQL 服务器和服务启动程序 4.3.1 mysqld --MySQL服务器 4.3.2 mysqld

第四章· MySQL客户端工具及SQL讲解

一.客户端命令介绍 1.mysql 1.用于数据库的连接管理 1) 连接(略) 2) 管理: #MySQL接口自带的命令 \h 或 help 或? 查看帮助 \G 格式化查看数据(key:value) \T 或 tee 记录日志 \c(5.7可以ctrl+c) 结束命令 \s 或 status 查看状态信息 \. 或 source 导入SQL数据 \u或 use 使用数据库 \q 或 exit 或 quit 退出 3)接收用户的SQL语句 2.将用户的SQL语句发送到服务器 2.mysqladm

【Linux原理】第四章目录和文件管理(二)

在Linux系统中,绝大多数的配置文件都是以普通文本格式保存的,这些配置文件决定着系统及相关服务,程序的运行特性. 一.查看文件内容. 1.cat命令---显示并连接(concatenate)文件的内容.在实际应用中更多的用于查看文件内容.如果需要查看多个文件的内容,可以添加多个文件路径,中间以空格隔开.格式为: [[email protected] benet]# cat aaa.txt bbb.txt表示同时查看aaa.txt和bbb. 2.more和less命令----分页查看文件内容.当

第十四章-MySQL

1 安装 MySQL常见的版本 GA: 广泛使用的版本 RC: 最接近正式版本 Alpha和Bean: 内测版本和公测版本 有两种安装方式: 安装包和压缩包 1) 安装msi文件 2) 解压zip文件 解压之后, 添加bin目录到环境变量 进入bin目录下初始化配置 mysqld --initialize-insecure 安装windows启动服务 "c:\mysql-5.7.16-winx64\bin\mysqld" --install 启动服务 net start mysql 登

《深入浅出Mysql》——第四章 Mysql中的运算符

“<=>”安全的等于运算符,和“=”类似,在操作数相等时值为 1,不同之处在于即使 操作的值为 NULL 也可以正确比较. 原文地址:https://www.cnblogs.com/JasonPeng1/p/12234403.html

mysql日志总结

第1章 Mysql日志 1.1 错误文件的配置方式 1.1.1 方法1:在my.cnf配置文件中调整 注意,是在[mysql_safe]模块下面进行配置 [[email protected] logs]# vim /etc/my.cnf [mysqld_safe] log-error = /application/mysql/logs/cc666.err 1.1.2 方法2:在启动MySQL服务的命令里加入记错错入日志参数 显示如下: [[email protected] ~]# mysqld_