错误日志

默认在DATADIR目录下 host_name.err

可以通过log-error=[file_name]指定

log-error=/mysql-5.6.22/log/alert.log

二进制日志

通过log-bin=[file_name]指定目录和文件

mysql> show variables like '%log_bin%';

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

| Variable_name                   | Value                             |

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

| log_bin                         | ON                                |

| log_bin_basename                | /mysql-5.6.22/log/node1-bin       |

| log_bin_index                   | /mysql-5.6.22/log/node1-bin.index |

| log_bin_trust_function_creators | OFF                               |

| log_bin_use_v1_row_events       | OFF                               |

| sql_log_bin                     | ON                                |

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

6 rows in set (0.00 sec)

log-bin=/mysql-5.6.22/log/node1-bin.log

MySQL日志格式分为3种,statement,row,mixed 可以通过--binlog--format指定

1.Statement:每一条会修改数据的sql都会记录在binlog中。

优点:不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能。(相比row能节约多少性能与日志量,这个取决于应用的SQL情况,正常同一条记录修改或者插入row格式所产生的日志量还小于Statement产生的日志量,但是考虑到如果带条件的update操作,以及整表删除,alter表等操作,ROW格式会产生大量日志,因此在考虑是否使用ROW格式日志时应该跟据应用的实际情况,其所产生的日志量会增加多少,以及带来的IO性能问题。)

缺点:由于记录的只是执行语句,为了这些语句能在slave上正确运行,因此还必须记录每条语句在执行的时候的一些相关信息,以保证所有语句能在slave得到和在master端执行时候相同 的结果。另外mysql 的复制,像一些特定函数功能,slave可与master上要保持一致会有很多相关问题(如sleep()函数, last_insert_id(),以及user-defined functions(udf)会出现问题).

使用以下函数的语句也无法被复制:

* LOAD_FILE()

* UUID()

* USER()

* FOUND_ROWS()

* SYSDATE() (除非启动时启用了 --sysdate-is-now 选项)

同时在INSERT ...SELECT 会产生比 RBR 更多的行级锁

2.Row:不记录sql语句上下文相关信息,仅保存哪条记录被修改。

优点: binlog中可以不记录执行的sql语句的上下文相关的信息,仅需要记录那一条记录被修改成什么了。所以rowlevel的日志内容会非常清楚的记录下每一行数据修改的细节。而且不会出现某些特定情况下的存储过程,或function,以及trigger的调用和触发无法被正确复制的问题

缺点:所有的执行的语句当记录到日志中的时候,都将以每行记录的修改来记录,这样可能会产生大量的日志内容,比如一条update语句,修改多条记录,则binlog中每一条修改都会有记录,这样造成binlog日志量会很大,特别是当执行alter table之类的语句的时候,由于表结构修改,每条记录都发生改变,那么该表每一条记录都会记录到日志中。

3.Mixedlevel: 是以上两种level的混合使用,一般的语句修改使用statment格式保存binlog,如一些函数,statement无法完成主从复制的操作,则采用row格式保存binlog,MySQL会根据执行的每一条具体的sql语句来区分对待记录的日志形式,也就是在Statement和Row之间选择一种.新版本的MySQL中队row level模式也被做了优化,并不是所有的修改都会以row level来记录,像遇到表结构变更的时候就会以statement模式来记录。至于update或者delete等修改数据的语句,还是会记录所有行的变更。

日志的删除

方法1:

reset master 命令,该命令将删除所以的BINLOG日志,新日志编号从000001开始

[root@BJ-TNVM-40 log]# ls -ltr

total 56

-rw-rw---- 1 mysql mysql   143 Jan  4 15:27 node1-bin.000001

-rw-rw---- 1 mysql mysql   143 Jan  4 15:32 node1-bin.000002

-rw-rw---- 1 mysql mysql   143 Jan  4 16:06 node1-bin.000003

-rw-rw---- 1 mysql mysql   143 Jan  4 16:08 node1-bin.000004

-rw-rw---- 1 mysql mysql   175 Jan  4 16:12 node1-bin.index

-rw-r----- 1 mysql root  25432 Jan  4 16:12 alert.log

-rw-rw---- 1 mysql mysql   753 Jan  4 16:13 node1-bin.000005

mysql> reset master;

Query OK, 0 rows affected (0.06 sec)

mysql> exit

Bye

[root@BJ-TNVM-40 log]# ls -ltr

total 40

-rw-r----- 1 mysql root  25432 Jan  4 16:12 alert.log

-rw-rw---- 1 mysql mysql   120 Jan  4 16:39 node1-bin.000001

-rw-rw---- 1 mysql mysql    35 Jan  4 16:39 node1-bin.index

方法2:

使用purge

Examples:

PURGE BINARY LOGS TO 'mysql-bin.010';

PURGE BINARY LOGS BEFORE '2008-04-02 22:46:26';

方法3:

设置参数--expire_logs_days=# 设置日志过期的参数,过了指定天数之后日志被自动删除

日志其它选项

--binlog-do-db=db_name 如果当前数据库是use选定的数据库是db_name则将更新记录到二进制日志中。

--binlog-ignore-db=db_name 如果当前数据库是use选定的数据库是db_name则不将更新保存到二进制日志中。

慢查询日志

慢查询日志记录了所有执行时间超过参数long_query_time(单位:秒)设置并且扫描记录小于min_examined_row_limit下所有的SQL语句日志。

默认情况下有两类语句不会记录到慢查询日志中:管理语句和不实用索引进行查询的语句

可以通过参数--log-slow-admin-statements和log_queries_not_using_indexes进行控制

--slow_query_log=[={0|1}] 指定慢查询状态,如果不指定或者指定值为1都会打开慢查询

slow_query_log_file=[file_name]指定慢查询日志

日志的读取

mysql> show variables like 'long%';

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

| Variable_name   | Value     |

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

| long_query_time | 10.000000 |

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

1 row in set (0.00 sec)

mysql> set long_query_time = 2;

Query OK, 0 rows affected (0.00 sec)

mysql> select count(*) from emp;

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

| count(*) |

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

|  5242892 |

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

1 row in set (2.47 sec)

使用mysqldumpslow查看日志

[root@BJ-TNVM-40 mysql-5.6.22]# mysqldumpslow slow_query.log

Reading mysql slow query log from slow_query.log

Count: 2  Time=19.98s (39s)  Lock=0.00s (0s)  Rows=0.0 (0), root[root]@localhost

insert into emp select * from emp

Count: 1  Time=2.47s (2s)  Lock=0.00s (0s)  Rows=1.0 (1), root[root]@localhost

select count(*) from emp

mysql alert table 日志_MySQL日志相关推荐

  1. mysql web日志_mysql日志管理

    mysql日志管理 mysql的日志分为如下几类: 1.错误日志 1.1记录服务器启动和关闭过程中的信息 1.2记录服务器运行过程中的错误信息. 1.3记录事件调度器运行一个事件时产生的信息. 1.4 ...

  2. mysql存储业务日志_MySQL 日志管理

    一.MySQL 日志 日志是mysql数据库的重要组成部分.日志文件中记录着mysql数据库运行期间发生的变化:也就是说用来记录mysql数据库的客户端连接状况.SQL语句的执行情况和错误信息等.当数 ...

  3. mysql教程日志_mysql日志文件的详细说明

    mysql日志文件是我们比较熟悉的,下面就对mysql日志文件进行了详细的说明介绍,如果您对mysql日志文件方面感兴趣的话,不妨一看. 1.错误日志 Error Log 错误日志记录了mysql s ...

  4. 阿里云mysql 日志_mysql日志-阿里云开发者社区

    mysql日志 mysql有以下几种日志: 错误日志: log-error 查询日志: log 慢查询日志: log-slow-queries 更新日志: log-update 二进制日志: log- ...

  5. 阿里云 mysql 日志_MySQL日志简介-阿里云开发者社区

    MySQL中的日志主要分为以下几种: 查询日志 慢查询日志 错误日志 二进制日志 中继日志 事务日志 说明: 支持本文实验使用的linux系统是CentOS7版本,使用的数据库是base源自带的Mar ...

  6. mysql .err 怎么查看_MySQL日志设置及查看方法

    MySQL有以下几种日志: 错误日志: -log-err 查询日志: -log 慢查询日志: -log-slow-queries 更新日志: -log-update 二进制日志: -log-bin 默 ...

  7. mysql 客户端连接日志_MySQL 日志详解

    一.MySQL 日志分类 MySQL 日志主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志. 错误日志: -log-err (记录启动.运行.停止 MySQL 服务时出现的信息) 查询日 ...

  8. phpstudy mysql日志_mysql日志设置及查看

    MySQL有以下几种日志: 错误日志: -log-err 查询日志: -log 慢查询日志: -log-slow-queries 更新日志: -log-update 二进制日志: -log-bin 默 ...

  9. mysql udf提权_MySQL日志安全分析技巧

    常见的数据库攻击包括弱口令.SQL注入.提升权限.窃取备份等.对数据库日志进行分析,可以发现攻击行为,进一步还原攻击场景及追溯攻击源. 0x01 Mysql日志分析 general query log ...

最新文章

  1. 2022-2028年中国EBA树脂(乙烯丙烯酸丁酯)产业竞争现状及发展前景规划报告
  2. 微软:Visual Studio2010能驱动世界
  3. 在win7下将CapsLock按键变成esc
  4. 如何为CSS指定对应的Media type
  5. 删除两个双向链表中值相同的结点--无空白头结点
  6. 你可能也看过这个生物学家转行后创造的价值 120 亿美元的动画
  7. Markdown——编辑器语法——字体、字号与颜色
  8. java编写正则表达式引擎_从0到1打造正则表达式执行引擎(一)
  9. Javabean的理解(通过javabean的部分程序)
  10. 视频编解码质量评价---BDBR与BD-PSNR
  11. 10个你必须知道的jQueryMobile代码片段
  12. 基于原生javascript的淡入淡出函数封装(兼容IE)
  13. IOS发布APP Store
  14. 车标识别 深度学习车标识别 神经网络车标识别 cnn车标识别 目标检测 yolo识别
  15. 计算机的用户账户,计算机用户名是什么意思(如何修改和设置用户名)
  16. Win10环境下运行红色警戒等老款游…
  17. 关于词嵌入(Word Embedding)的一些总结
  18. 开关电源的EMC干扰不知道是怎么产生的?(开关电源EMC探析)
  19. 对于表单提交的防止重复提交
  20. 【转载】讲真,认知几乎是人和人之间唯一的本质差别。

热门文章

  1. 为什么Note.js 里面没有sap.ui.core.Control.extend()这样的代码,但是runtime有自动生成有
  2. 作为一名SAP从业人员,需要专门学习数学么
  3. JavaScript实现的水珠动画效果
  4. AET type和不同的操作方式
  5. How to put S4 extension field to CRM WebUI search view in the design time
  6. JavaScript 里变量名前面加了大括号代表什么含义
  7. 使用JavaScript正则表达式解析markdown里的图片标签
  8. Linux下不同命令的区别与联系(cat和vi/vim和nano)
  9. 用iframe transform: scale() 缩小后点不到按钮_“打分”或者“打多少分”用英文可以怎样去表达?...
  10. 2013江苏计算机二级vfp试题,2013年计算机二级VFP上机试题及答案解析51