MySQL的日志

  • Error log:错误日志
  • Query Log:查询日志    general query log/slow query log:超过设定时间(long_query_time)或者没走索引的语句
  • Binary Log:二进制日志,记录数据被修改的相关信息

开启查询日志(一般不开):

mysql> show variables like ‘general_log%‘;
+------------------+---------------------------+
| Variable_name    | Value                     |
+------------------+---------------------------+
| general_log      | ON                        |
| general_log_file | /data/3307/data/MySQL.log |
+------------------+---------------------------+

2 rows in set (0.00 sec)

慢查询参数
long_query_time=1  #查询超过1秒钟的
slow_query_log_file = /data/3307/log/mysql-slow.log #日志路径
log_queries_not_using_indexes  #没使用索引的语句
slow_query_log = 1

二进制日志

mysql> show variables like ‘%log_bin%‘;
+---------------------------------+---------------------------------+
| Variable_name                   | Value                           |
+---------------------------------+---------------------------------+
| log_bin                         | ON                              |
| log_bin_basename                | /data/3307/data/mysql-bin       |
| log_bin_index                   | /data/3307/data/mysql-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_error = /data/3307/log/mysql-error.log

二进制日志三种工作模式:
1、statement level:
每一条会修改数据的sql都会记录到master的bin-log中,slave在复制的时候sql进程会解析成和原来master端执行郭的相同sql来再次执行
优点:解决了row level下的缺点,不需要记录每一行数据的变化,减少bin-log日志量,节省IO,只记录master上执行的sql及上下文信息
缺点:很多情况下会有复制问题出现,在使用函数,存储过程等

2、row level
日志中会记录成每一行数据被修改的形式,然后在slave端再对相同的数据进行修改
优点:不记录执行sql上下文信息,只记录哪一行被修改,可以解决存储过程,function,trigger的调用和触发无法被正确复制的问题。
缺点:记录一条语句改变的每行,日志量大,特别是表结构发生变化的时候。

3、mixed
根据执行的每一条具体sql来区分对待日志形式,例如遇到表结构改变等,就会用statement level模式,如果sql语句update,delete等修改数据的语句,会记录所有行的变更。

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

配置文件修改:
binlog_format=STATEMENT,ROW,MIXED

会话级别修改:set session binlog_format="STATEMENT","ROW","MIXED"
全局级别修改:set global binlog_format="STATEMENT","ROW","MIXED"

下面这条命令,可以将row模式下的binlog解析成statement模式进行分析
[[email protected] data]# mysqlbinlog --base64-output=decode-rows -v mysql-bin.000006

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

mysql> set session binlog_format="row";
Query OK, 0 rows affected (0.00 sec)

mysql> 
mysql> 
mysql> show variables like ‘%binlog_format%‘;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW   |
+---------------+-------+
1 row in set (0.01 sec)

mysqlbinlog -->解析mysql的bin-log日志

mysqlbinlog mysql-bin.0000001 --start-position=234 --stop-position=345 -r full.sql

时间: 2024-10-14 13:56:08

MySQL的日志的相关文章

mysql热备及查询mysql操作日志

mysql热备 1 查看mysql版本,保证主库低于等于从库 2 主库配置:   A 需要打开支持日志功能:log-bin=mysql-bin   B 提供server-id:server-id=1   C 重启mysql,进入后,分配复制从库的帐号 GRANT REPLICATION SLAVE ON *.* TO 'repuser'@'backip' IDENTIFIED BY 'repuser';   D show master status;能看到二进制日志文件目前的Position  

MySQl Study学习之--MySQl二进制日志管理

MySQl Study学习之--MySQl二进制日志管理 MySQL二进制日志(Binary Log):   a.它包含的内容及作用如下:    包含了所有更新了数据或者已经潜在更新了数据(比如没有匹配任何行的一个DELETE)    包含关于每个更新数据库(DML)的语句的执行时间信息    不包含没有修改任何数据的语句,如果需要启用该选项,需要开启通用日志功能    主要目的是尽可能的将数据库恢复到数据库故障点,因为二进制日志包含备份后进行的所有更新    用于在主复制服务器上记录所有将发送

mysql 的日志文件

mysql的日志文件 日志文件大致分为  error log, binary log, query log, slow query log, innodb redo log ;如图: 1.error log the error log file contains information indicating when mysqld was started and stopped also any critical errors that occur while the server is run

MySQL 错误日志(Error Log)

同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等.这些日志可以帮助我们定义mysqld内部发生的事情,数据库性能故障,记录数据的变更历史,用户恢复数据库等等.本文主要描述错误日志文件. 1.MySQL日志文件系统的组成   a.错误日志:记录启动.运行或停止mysqld时出现的问题.   b.通用日志:记录建立的客户端连接和执行的语句.   c.更新日志:记录更改数据的语句.该日志在M

CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构.基于当前的日志数据,它可以处理syslog日志消息,Windows事件日志记录,支持故障排除,使用户能够快速查找日志数据中看出问题的解决方案. LogAnalyzer 获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log/目录下的

mysql二进制日志

mysql二进制日志称为binlog,记录了数据库修改数据的操作,可以用作数据恢复. binlog有三种记录方式 1.statement 记录修改数据的原始sql,IO量较小.sql中存在使用user()等依赖运行环境的函数时,可能导致数据恢复不正确. 2.row 记录每行数据的修改动作,IO较大,准确性最高,生产环境推荐使用这种模式. 3.mixed 上述两种模式混合使用. binlog参数设置 1.log_bin 只读参数,只能在my.ini(my.cnf)中设置,log_bin的值为二进制

MySQL二进制日志(binary log)总结

本文出处:http://www.cnblogs.com/wy123/p/7182356.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他) 今天无意中发现了一个云栖社区举行的MySQL“第一季:挑战玄惭之 慢SQL性能优化赛”,在测试服务器上执行其测试脚本写入数据的时候报错提示如下,Multi-statement transaction required more than 'max_binlog_cache_

MySQL之日志管理(一)

MySQL的日志有以下六种: 错误日志:服务器启动.关闭.运行中产生的错误信息.及event(事件调度)运行一个事件时产生的信息.及从服务器上启动和关闭从服务器进程时产生的信息. 一般查询日志:general_log.general_log_file. 慢查询日志:查询时间超过指定的查询时间的记录 二进制日志:任何引起或者可能引起数据变化的操作都要记录进二进制日志(DDL.DML.DCL语句):二进制日志又叫做几十点还原,可在server崩溃后将数据还原到崩溃的那一刻. 中继日志:中继日志就是从

MySQL错误日志总结

MySQL错误日志是记录MySQL 运行过程中较为严重的警告和错误信息,以及MySQL每次启动和关闭的详细信息.错误日志的命名通常为hostname.err.其中,hostname表示服务器主机名. The error log contains information indicating when mysqld was started and stopped and also any critical errors that occur while the server is running.

MySQL存储日志并使用Loganalyzer作为前端展示

MySQL存储日志并使用Loganalyzer作为前端展示 为什么要使用日志 在生产环境中我们可能需要一个较为完整的日志系统来查看运行中主机服务的状态和所作出的操作,我们可以在较大型的网络架构中使用ELK来实现对日志的收集.检索.前端显示,但是中小型架构中使用rsyslog足以对所有服务器的日志进行收集和检索来达到实时分析数据流量的目的. 本文目标 使用rsyslog将两台主机的日志信息存储到MySQL数据库中,并且编译安装Loganalyzer对MySQL中的日志信息使用httpd+php在前