-
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