简介
MySQL的日志有主要有四种,会记录不同的操作行为,分别是----二进制日志、错误日志、查询日志、慢查询日志。开启日志是MySQL安全的必要手段之一,但是会影响MySQL的性能,所以要学会日志管理,根据实际的业务需求来选择日志。
详解
查询日志
查询日志记录了mysql的所有用户操作,包括启动和关闭服务、执行查询和更新语句等。
开启查询日志
mysql服务器默认情况下并没有开启查询日志。 在my.ini或my.cnf的[mysqld]组下加入log选项,形式如下:
代码语言:javascript复制[mysqld]
log[=path/[filename]]
Other
path为日志文件所在目录路径,filename为日志文件名。可以不指定目录和文件名,将默认存储在mysql数据目录中的hostname.log文件中。
查看查询日志
查询日志是以文本文件的形式存储的,可以直接打开查看。 文件内容如下:
代码语言:javascript复制E:Program FilesMySQLMySQL Server 5.7binmysqld, Version: 5.7.19-log (MySQL Community Server (GPL)). started with:
TCP Port: 3306, Named Pipe: (null)
Time Id Command Argument
140801 23:39:33 1 Connect root@localhost on
1 Query SHOW VARIABLES
1 Query SHOW WARNINGS
1 Query select timediff( curtime(), utc_time() )
1 Query SHOW COLLATION
1 Query SET NAMES utf8
1 Query SET character_set_results=NULL
1 Query SELECT * FROM `emp`
140801 23:39:44 1 Query SELECT * FROM `emp`
1 Query SELECT * FROM `emp`
140801 23:39:55 1 Query USE test;
SELECT * FROM `emp`
1 Init DB test
Other
删除查询日志
- 删除查询日志文件,再执行下一步。
- 执行 flush logs 命令生成新的查询日志文件。
慢查询日志
慢查询日志是记录查询时长超过指定时间的日志。慢查询日志主要用来记录执行时间较长的查询语句,通过慢查询日志可以找出执行时间较长、执行效率较低的语句,然后进行优化。
开启慢查询日志
mysql中慢查询日志默认是关闭的。 在my.ini或者my.cnf文件中开启慢查询日志的配置如下:
代码语言:javascript复制[mysqld]
log-slow-queries[=path/[filename]]
long_query_time=n
Other
path为日志文件所在目录路径,filename为日志文件名。可以不指定目录和文件名称,默认存储在数据目录中文件名为hostname-slow.log,hostname是mysql服务器的主机名。 long_query_time设置查询时间,超过这个时间的语句会被记录。可以不写,默认十秒(单位秒)。
查看慢查询日志
慢查询日志也是以文本文件的形式存储的,可以直接打开查看。 文件内容如下:
代码语言:javascript复制E:Program FilesMySQLMySQL Server 5.7binmysqld, Version: 5.7.19-log (MySQL Community Server (GPL)). started with:
TCP Port: 3306, Named Pipe: (null)
Time Id Command Argument
# Time: 140802 0:02:29
# User@Host: root[root] @ localhost [::1]
# Query_time: 7.578125 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
use test;
SET timestamp=1406908949;
SELECT BENCHMARK (10000000,PASSWORD ('newpwd'));
Other
删除慢查询日志
- 删除慢查询日志文件,再执行下一步。
- 执行 flush logs 命令生成新的慢查询日志文件。