为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。

http://www.cnblogs.com/shijiaqi1066/p/3859866.html

MySQL常用日志

错误日志:--log-err  记录启动,运行,停止mysql时出现的信息。

二进制日志:--log-bin  记录所有更改数据的语句,还用于复制,恢复数据库用。

查询日志:--log  记录建立的客户端连接和执行的语句。

慢查询日志:--log-slow-queries  记录所有执行超过long_query_time秒的所有查询。

更新日志:--log-update  二进制日志已经代替了更新日志,更新日志在MySQL 5.1中不再使用。

查看系统日志的相关配置信息

命令:show global variables like '%log%';

选项说明:

log:表示查询日志与慢查询日志是否开启。是一个总开关。

log_output:日志的存储方式,以FILE或以TABLE存储日志。

general_log:表示查询日志是否开启。

general_log_file:/mydata/data/mysql.log

这些值都可以使用SET语句临时修改。若需要需要永久生效,则只需要修改配置文件中的变量。

错误日志

MySQL一般默认开启了错误日志。

错误日志的记录的信息内容:

  • 服务器启动和关闭过程中的信息。
  • 服务器运行过程中的错误信息。
  • 事件调度器运行一个事件时产生的信息。
  • 在从服务器上启动从服务器进程时产生的信息。

日志一般位于数据目录下datadir 。错误日志的名称一般为 主机名.err 。

错误日志的配置

  • log-error :是否启用错误日志。
  • log-warnings:是否启用警告日志。

二进制日志

记录修改数据或有可能引起数据改变的MySQL语句。

日志的位置

使用--log-bin=[file_name]选项启动时,mysqld开始将数据变更情况写入日志文件。没有指定file_name值,默认名为主机名后跟“-bin”。若给出了文件名,但没包含路径,则问默认写入datadir指定的目录中。

日志的格式

MySQL5.5 中,二进制日志格式分为三种,通过--binlog-format设置:

STATEMENT

MySQL5.1 之前的版本都采用这种方式,日志中记录的都是语句。mysqlbinlog工具,可以清晰地看到每条语句的文本。这种格式的优点是日志记录清晰易读,日志量少,对IO影响小。缺点是在某些情况下slave的日志复制会出错。

ROW

MySQL 5.1.11之后,出现了这种新的日志格式。它将每一行的变更记录到日志中,而不是记录SQL语句。这种格式的优点是会记录每一行数据的变化细节,不会出现无法复制。缺点是日志量,对IO影响大。

MIXED

目前MySQL默认的日志格式。该格式混合了STATEMENT和ROW两种日志,避免两种各自的缺点,尽可能利用了两种的优点。默认情况下采用STATEMENT,特殊情况下使用ROW。

    • 使用了DML语句。
    • 使用了临时表。
    • 使用了UUID()、USER()、CURRENT_USER()、FOUND_ROWS()、ROW_COUNT()等不确定函数。这种函数在主从中的值不一定相同。
    • 表的存储引擎为NDB,这时对于表的DML操作都会以ROW格式记录。
    • 使用了INSERT DELAY语句。
    • 使用了用户定义函数。

日志的读取

使用mysqlbinlog命令读取二进制日志。

日志的删除

对于OLTP系统,每条会生成大量的二进制日志。日志若长时间不清楚会浪费很大的磁盘空间。所以需要定期的清理二进制日志。

方法1

命令:RESTART MASTER;

该命令会删除所有的binlog日志。新日志编号重新从“000001”开始。

方法2

命令:PURGE MASTER LOGS TO 'mysql-bin.******';

该命令删除“******”编号之前所有的日志。

方法3

命令:PURGE MASTER LOGS BEFORE 'yyyy-mm-dd hh24:mi:ss';

该命令删除日志为“yyyy-mm-dd hh24:mi:ss”之前的所有日志。

方法4

设置参数expire_logs_days = # ,此参数的含义是设置日志的过期天数,过了指定的天数后,日志将会被自动删除,这样有利于DBA管理日志的工作量。

其他选项

--binlog-do-db=db_name

告诉主服务器,如果当前的数据库(即USE选定的数据库)是db_name,应将更新记录到二进制日志中。其它所有没有明显指定的数据库被忽略。

--binlog-ignore-db=db_name

告诉主服务器,如果当前的数据库(即USE选定的数据库)是db_name,不将更新保存到二进制日志中。

若数据库启动时使用选项--binlog-do-db=DB_A,使用语句“use DB_B”置DB_B为当前数据库,此时使用update语句修改DB_A的表数据时出现如下情况:

  • 数据库DB_B不在允许binlog的列表内,该语句不写入二进制日志文件。
  • 数据库DB_B在允许binlog的列表内,该语句写入二进制日志文件。

查询日志

MySQL默认不启用查询日志。查询日志不光会记录查询语句,同样也会增删改有相应记录。由于日志量非常大,浪费磁盘IO,所以一般不建议开启。

查询日志的格式是纯文本的,可以直接读取。

慢查询日志

慢查询日志可以记录长时间的查询。慢查询默认是关闭的,由于慢查询日志对系统性能的问题很有帮助,所以建议开启,并经常查看。

慢查询的时长,不是光指的是sql语句的查询时间。是从查询启动开启到结束的时长,任何因为阻塞而导致时间也会包含在内。例:因为表锁而导致sql语句超时。

有关慢查询日志功能的相关参数说明:

log-slow-queries

指定日志文件存放位置,该目录文件一定要有写的权限。可以不用设置,系统会给一个缺省的文件host_name-slow.log

long_query_time

SQL执行时间阈值,慢查询的单位为秒,可以精确到微秒。10.000000表示10秒整。

打开mysql的慢查询日志很简单,只需要在mysql的配置文件里的[mysqld]下面加上

log-slow-queries=mysql_slow.log
long_query_time=

慢查询日志用来收集那些花费太长时间(超过指定时间)执行的SQL语句,该指定时间由long_query_time服务器变量设定。

--log-slow-queries[=file_name]选项启动慢查询日志。如果没有给出file_name值,默认未主机名,后缀为“-slow.log”;如果给出文件名,但不是绝对路径名,文件则写入数据目录。

查询慢查询日志相关的常量

命令:show global variables like '%slow%';

若slow_query_log和log_slow_queries显示为on,那说明服务器的慢查询日志已经开启了。

slow_launch_time跟慢查询日志没有任何关系, 它代表的是thread create的一个阈值。

查询慢查询日志的阈值

命令:show global variables like 'long_query_time';

使用mysqldumpslow命令可以快速定位系统的SQL瓶颈。

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。

http://www.cnblogs.com/shijiaqi1066/p/3859866.html

MySQL日志概述的更多相关文章

  1. mysql 开发进阶篇系列 38 mysql日志之错误日志log-error

    一.mysql日志概述 在mysql中,有4种不同的日志,分别是错误日志,二进制日志(binlog日志),查询日志,慢查询日志.这此日志记录着数据库在不同方面的踪迹(区别sql server里只有er ...

  2. 【第六章】MySQL日志文件管理

    1.日志文件管理概述: 配置文件:/etc/my.cnf 作用:MySQL日志文件是用来记录MySQL数据库客户端连接情况.SQL语句的执行情况以及错误信息告示. 分类:MySQL日志文件分为4种:错 ...

  3. MySQL 日志初探

    目录 MySQL 日志初探 零.概述 一.Error Log(错误日志) 二.General Query Log(通用查询日志) 三.Slow Query Log (慢查询日志) 四.Binary L ...

  4. Mysql日志解析

    修改Mysql配置 Mysql配置地址为: C:\Program Files (x86)\MySQL\MySQL Server 5.5 如果无法修改可以把my.ini拷贝出来,修改完后,再拷贝回去! ...

  5. Mysql 日志 (转)

    MySQL日志: 主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志: 错误日志 在mysql数据库中,错误日志功能是默认开启的.并且,错误日志无法被禁止.默认情况下,错误日志存储在mys ...

  6. mysql日志与备份恢复

    一.mysql日志: mysql的日志种类有很多,常见的有二进制日志,一般查询日志,满查询日志,中继日志,事务日志等,具体信息可以通过 mysql> SHOW GLOBAL VARIABLES ...

  7. mysql日志开启和查看

    mysql日志开启和查看. 找到mysql根目录下的my.ini文件,打开在下面插入 log-bin=mysql-bin binlog_format=mixed 然后重启mysql. 在dos端登录m ...

  8. MySQL日志管理

    MySQL日志管理 2013年09月26日 ⁄ MySQL ⁄ 共 14266字 ⁄ 评论数 ⁄ 被围观 , views+ 一.日志类型: MySQL有几个不同的日志文件,可以帮助你找出mysqld内 ...

  9. Mysql日志操作

    Mysql日志 mysql的日志类型:错误日志: -log-err记录mysql服务的启动.运行.停止mysql服务时出现的问题查询日志: -log记录建立的客户端连接和执行的语句慢查询日志: -lo ...

随机推荐

  1. pageControl设置不居中显示,居左或居右

    UIPageControl控件,默认是居中显示的,如下图: 在很多的APP中,会看到pageControl是居左或居右显示的,如下图:   如何控制pageControl的位置显示呢? 设置为居右的代 ...

  2. bzoj 2226: [Spoj 5971] LCMSum 数论

    2226: [Spoj 5971] LCMSum Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 578  Solved: 259[Submit][St ...

  3. Silicon Labs电容式触摸感应按键技术原理及应用

    市场上的消费电子产品已经开始逐步采用触摸感应按键,以取代传统的机械式按键.针对此趋势,Silicon Labs公司推出了内置微控制器(MCU)功能的电容式触摸感应按键(Capacitive Touch ...

  4. linux No manual entry for

    我的博客:www.while0.com 原来除了安装man,还要安装man-pages. yum install man -y yum install man-pages -y

  5. Linux 关机命令 重启命令

    Linux centos重启命令: 1.reboot2.shutdown -r now 立刻重启(root用户使用)3.shutdown -r 10 过10分钟自动重启(root用户使用)4.shut ...

  6. Robotium跨应用处理方法

    相信用过一段时间Robotium的同学一般都遇到过如下情况:界面跳转到被测程序外以后,Robotium就毫无对策了,这也是Instrumentation框架最致命的一个缺点;然而领导是不会管你这些很“ ...

  7. Ubuntu 桌面歌词

    Ubuntu 有个用来显示歌词软件叫 osd-lyrics. 这个软件的强大之处在于他可以和各种播放器配合, 并且可以自动下载歌词. 自从升级到14.04后不能用了,便以为该软件被废弃了. 无意中发现 ...

  8. PHP Sessions子系统会话固定漏洞

    漏洞名称: PHP Sessions子系统会话固定漏洞 CNNVD编号: CNNVD-201308-193 发布时间: 2013-08-22 更新时间: 2013-08-22 危害等级: 中危   漏 ...

  9. 通过ComponentName获取相应的Widget

    最近在锁屏上研究,如果预置widget,研究了好久,终于找到方法了,先上代码: private int getAppWidgetFromComName(ComponentName providerCo ...

  10. HDOJ 1013题Digital Roots 大数,9余数定理

    Problem Description The digital root of a positive integer is found by summing the digits of the int ...