msyql 日志分类、存储、启动,慢查询日志(一)

Mysql日志的分类:

出错日志(error log):(log_error)这个日志记载着服务器启动和关闭的情况,还记载着关于故障或异常状况的消息。

我们安装完数据库之后,启动数据库如果发生异常,我们应该首先查这个日志文件。

常规查询日志:(log)该日志包括客户连接的记录,来自客户的SQL查询和其他的各种事件。一般我们可以用其来监视用户的活动,谁在连接,从哪连接,执行哪些操作

慢查询日志:(slow_query_log)该日志用于改进查询性能,慢是有时间定义的,用变量(long_query_time)来配置,默认值是2.0,单位是秒,这个慢还取决你服务器,比如服务器的负载高时,可能查询速度就会下降,原本不是慢查询的语句,也会被写入到慢查询日志中。

二进制日志(binary log):(log_bin)这个日志由多个文件构成,里面记录着由update,delete,insert,create table, drop table,grant等语句完成的数据修改,二进制日志是一些二进制编码的数据修改“事件”,它有一套配套的索引文件,里面列出了服务器上现有的二进制日志文件

二进制日志索引文件:(log_bin_index)记录着服务器上现有的二进制日志文件,它可以配合数据库备份文件在系统发生崩溃后对数据表进行恢复,先从备份文件恢复数据库,然后使用mysqlbinlog工具把二进制日志的内容转换为文本语句,接下来把上次备份后执行的过的每一条数据修改语句依次执行,达到恢复到数据库崩溃前的状态。

mysql的复制机制:就是通过二进制日志把主服务器上发生的数据修改事件传到从服务器上去

中继日志:(relay_log)在主从架构时,一般在从服务器上会维护一个中继日志,里面记载着从主服务器上接收的、目前尚未执行的数据修改事件,中继日志和二进制日志的格式是一样的,并且也有一个配套的索引文件,其列出了从服务器上现有的中继日志文件。

中继日志索引文件:(relay_log_index)列出了从服务器上现有的中继日志文件。


日志的存储:

在5.1.20版本之后:日志除了被写入文件中还可以有如下的存储方式:

出错日志:可以发送到syslog

常规日志:可以写到mysql数据库中的数据库表中

慢查询日志:可以写到mysql数据库中的数据库表中

注:如果我们没有配置,默认mysql服务器是不会创建任何日志,但是两种特例除外:

1.在Unix操作系统中:如果用mysqld_safe来启动服务器,该脚本将创建出错日志,并告诉服务器去使用它

2.在Windows操作系统中:只要没有使用--console选项来表明让出错信息发送到控制台而不是被发送到文件,那么服务器就会创建出错日志

注:如果出错日志文件已经存在,但是用来登录服务器的账号没有写权限,mysql服务将会启动失败,并且没有任何报错消息被写入日志。

使用mysqld_safe启动数据库服务器时,如何将出错日志信息发送到syslog,而不是发送到一个日志文件:

使用--syslog 参数代替--log_error——mysql技术内幕,但是在5.6中没有查到该参数

Windows上的出错日志:

在Windows上,mysql把错误日志默认写到数据目录的HOSTNAME.ERR文件中,但是如果在启动时,你使用了参数--console,那么此时mysql将会把错误信息打印在控制台,同时不会再写入错误文件里。

但是:如果你的mysql被安装成Windows的一项服务了,这时再使用--console将没有任何效果,因为它找不到控制台去输出。。。


日志的启用方式:

1.使用参数的方式:下面是本人在mysql5.6中可使用的参数名称:

参数 含义 含义
--log_error: (出错日志) path+file 日志文件存放路径
--log 常规日志 path+file  
--slow_query_log 是否开启慢查询日志 on/off 开关
--slow_query_log_file 慢查询日志文件存储名称 path+file 慢查询文件存储路径和名称
--log_bin 是否开启二进制日志 on/off 开关
--log_bin_basename 二进制日志的文件名 path+file  
--log_bin_index 二进制日志索引文件 path+file  
--relay_log 是否开启中继日志 on/off  
--relay_log_basename 中继日志文件名 path+file  
--relay_log_index 中继日志索引文件 path+file  

更多命令可使用:show variables like "%log%";来查询

注:配置日志的时候,如果没有文件,那么mysql会自动创建该文件,但是如果没有对应的子目录,mysql是不会自动创建子目录的

时间: 2024-12-01 00:37:56

msyql 日志分类、存储、启动,慢查询日志(一)的相关文章

MySQL慢查询日志总结

慢查询日志概念      MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中.long_query_time的默认值为10,意思是运行10S以上的语句.默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响.慢查询日志支持将日志记录写入文件,也支

mysql慢查询日志分析实例

1.MySQL 慢查询日志分析 pt-query-digest分析慢查询日志 pt-query-digest –report slow.log 报告最近半个小时的慢查询: pt-query-digest –report –since 1800s slow.log 报告一个时间段的慢查询: pt-query-digest –report –since '2013-02-10 21:48:59′ –until '2013-02-16 02:33:50′ slow.log 报告只含select语句的慢

【转载】MySQL慢查询日志总结

MySQL慢查询日志总结 2016-06-17 10:32 by 潇湘隐者, 1166 阅读, 1 评论, 收藏, 编辑 慢查询日志概念      MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中.long_query_time的默认值为10,意思是运行10S以上的语句.默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是

MySQL 慢查询日志(Slow Query Log)

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

MYSQL5.7.9开启慢查询日志的技巧_Mysql

用MYSQL 5.7.9 作为ZABBIX 2.4.7 的监控数据库. 前段时间开启了慢查询日志, 后来发现慢查询日志膨胀到了700M 查看最后100条 大部分都是 0.1 秒的 后来想改, 以前是动态设置的 set global slow_query_log=1; 方式的 . 然后想直接用配置文件/etc/my.cnf 配慢查询 # Remove leading # and set to the amount of RAM for the most important data # cache

mysql开启慢查询日志的例子

当项目大了之后,mysql每天处理海量的数据,难免会有一些慢查询,此时我们要开启慢查询日志,来看哪些sql语句是需要优化的.以下就是开启mysql慢查询日志的方法:   1. 进入mysql命令模式下,执行"set global slow_query_log=on;"来开启记录慢查询日志. 2. 以window为例,打开mysql的配置文件"my.ini",在后面加入如下配置: log-slow-queries = E:\\mysql_log\\slow_query

MySQL慢查询日志开启分析详解介绍

(1)配置开启 Linux: 在mysql配置文件 my.cnf 中增加如下语句: log-slow-queries=/var/lib/mysql/slowquery.log #指定日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log long_query_time=5 #记录超过的时间,默认为10s,这里设置为查询时间超过5s的查询语句 log-queries-not-using-indexes = on # 列出没有使用索引的查询语句 #log-querie

对MySQL慢查询日志进行分析的基本教程_Mysql

0.首先查看当前是否开启慢查询: (1)快速办法,运行sql语句 show VARIABLES like "%slow%" (2)直接去my.conf中查看. my.conf中的配置(放在[mysqld]下的下方加入) [mysqld] log-slow-queries = /usr/local/mysql/var/slowquery.log long_query_time = 1 #单位是秒 log-queries-not-using-indexes 使用sql语句来修改:不能按照m

MySQL 慢查询日志分析及可视化结果

MySQL 慢查询日志分析及可视化结果 MySQL 慢查询日志分析 pt-query-digest分析慢查询日志 pt-query-digest --report slow.log 报告最近半个小时的慢查询: pt-query-digest --report --since 1800s slow.log 报告一个时间段的慢查询: pt-query-digest --report --since '2013-02-10 21:48:59' --until '2013-02-16 02:33:50'