Mysql日志

  • mysql的日志类型
    错误日志: -log-err
    记录mysql服务的启动、运行、停止mysql服务时出现的问题
    查询日志: -log
    记录建立的客户端连接和执行的语句
    慢查询日志: -log-slow-queries
    记录所有执行时间超过long_query_time的所有查询或不使用索引的查询
    更新日志: -log-update
    二进制日志: -log-bin
    记录所有更改数据的语句,可以用于数据复制
    1.首先确认你日志是否启用了
mysql>show variables like 'log_%';
  • 如果启用了,即ON

2.怎样知道当前的日志

mysql> show master status;

3.看二进制日志文件用mysqlbinlog

shell>mysqlbinlog mail-bin.000001
如何开启二进制查询?

默认情况下,二进制日志是关闭的,可以通过修改mysql的配置文件来启动和设置二进制日志:
my.cnf中[mysqld]组下面有几个设置是关于二进制日志的:

log-bin[=PATH/[FILENAME]]
expire_logs_days=10
max_binlog_size=100M
server-id = 1//这一行必须要,因为数据库有主从之分

log-bin定义开启二进制日志;path表明日志文件所在的目录路径;
filename指定了日志文件的名称,如文件的全名是filename.0001,filename.0002等
除了上述文件之外,还有一个成为filename.index的文件,文件内容为所有日志的清单,可以使用记事本打开该文件
expire_logs_days定义了mysql清除过期日志的时间,即二进制日志自动删除的天数。默认值为0,表示“没有自动删除”。当mysql启动或刷新二进制日志时可能删除该文件
max_binlog_size定义了单个文件的大小限制,如果二进制日志写入的内容大小超出给定值,日志就会发生滚动
(关闭当前文件,重新打开一个新的日志文件)。不能将该变量设置为大于1GB或小于4096字节。默认值是1GB

如何开启慢查询?

如果log_slow_queries状态为OFF, 说明当前并没有开启慢查询.
开启慢查询非常简单, 操作如下:
在[mysqld]中添加如下信息:

[mysqld]
log-slow-queries[=PATH/[FILENAME]]
long_query_time = 4
log-queries-not-using-indexes

log-slow-queries: 代表MYSQL慢查询的日志存储目录, 此目录文件一定要有写权限;
long_query_time: 最长执行时间. (如图, MSYQL将记录下所有执行时间超过2条的SQL语句, 此处为测试时间, 时间不应太小最好在5-10秒之内, 当然可以根据自己的标准而定);
log-queries-not-using-indexes :没有使用到索引的查询也将被记录在日志中
配置好以后重新启动Mysql服务
service mysqld restart