目录
15.1 日志简介
MySQL日志主要分为4类
● 错误日志,记录MySQL服务的启动、运行或停止MySQL服务时出现的问题。
● 查询日志,记录建立的客户端连接和执行的语句。
● 二进制日志,记录所有更改数据的语句。可以用于数据复制。
● 慢查询日志,记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。
查询频繁的数据开开启慢查询和通用查询日志,会花费很多时间记录日志,降低数据库的性能和磁盘空间。
15.2 二进制日志,记录数据库的变化。
15.2.1 启动和设置二进制日志
默认情况下,二进制日志是关闭的。可以通过修改MySQL的配置文件来启动和设置二进制日志。my.ini中[mysqld]组下面有几个设置是关于二进制日志的:
[mysqld]
log-bin [=path/ [filename] ]
expire_logs_days = 10 定期清除过期日志的时间,自动删除的天数。
max_binlog_size = 100M
启动后show variables查询日志设置
15.2.2 查看二进制日志
show binary logs语句可以查看当前的二进制日志文件个数及其文件名。
MySQL二进制日志并不能直接查看,如果要查看日志内容,可以通过mysql bin log命令查看。
15.2.3 删除二进制日志
1.使用RESET MASTER语句删除所有二进制日志。
2.使用PURGE MASTER LOGS语句删除指定的日志文件。
Purge { master | binary } logs to ‘log_name’ 删除比指定编号小的所有日志;
Purge { master | binary } logs before ‘date’ 删除指定日期之前的日志。
15.2.4 使用二进制日志还原数据库
如果MySQL服务器启用了二进制日志,在数据库出现意外丢失数据时,可以使用mysqlbinlog工具从指定的时间点开始(例如,最后一次备份)直到现在或另一个指定的时间点的日志中恢复的数据。
Mysqlbinlog [--start-date/--stop-date | --start-position/--stop-position ] log_filename | mysql -uuser =ppass
15.2.5 暂时停止二进制日志功能
通过SET SQL_LOG_BIN语句可以使用MySQL暂停或者启动二进制日志。
暂停二进制日志:SET sql_log_bin = 0;
恢复二进制日志 : SET sql_log_bin = 1;
15.3 错误日志
15.3.1 启动和设置错误日志
在默认情况下,错误日志会记录到数据库的数据目录下。如果没有在配置文件中指定文件名,则文件名默认为hostname.err。
[mysqld]
log-error=[path / [file_name] ]
配置好则可以重启启动。
15.3.2 查看错误日志
通过错误日志可以监视系统的运行状态,便于及时发现故障和修复故障。MySQL错误日志是以文本文件形式存储的,可以使用文本编辑器直接查看MySQL错误日志。可以在mysql.ini配置文件修改位置和名字。
SHOW VARIABLES LIKE 'log_error';
15.3.3 删除错误日志
MySQL的错误日志是以文本文件的形式存储在文件系统中。可以直接删除错误日志文件。
mysqladmin -u root -p flush-logs
15.4 通用查询日志
15.4.1 启动和设置通用查询日志
打开通用查询日志,在my.ini(或my.cnf)的[mysqld]组下加入log选项。
[mysqld]
log[=path / [filename]]
15.4.2 查看通用查询日志
通用查询日志是以文本文件的形式存储在文件系统中的。可以使用文本编辑器直接打开通用日志文件进行查看,Windows下可以使用记事本,Linux下可以使用vim和gedit等。
15.4.3 删除通用查询日志
可以用直接删除日志文件的方式删除通用查询日志。
重新建立新的通用查询日志文件:
mysqladmin –u root –p flush-logs或者客户端flush logs;
15.5 慢查询日志
15.5.1 启动和设置慢查询日志
MySQL中慢查询日志默认是关闭的,可以通过配置文件my.ini或者my.cnf中的log-slow-queries选项打开,也可以在MySQL服务启动的时候使用--log-slow-queries[=file_name]启动慢查询日志。
[mysqld]
log-slow-queries[=path / [filename] ]
15.5.2 查看慢查询日志
MySQL的慢查询日志是以文本形式存储的,可以直接使用文本编辑器查看。
15.5.3 删除慢查询日志
慢查询日志也可以直接删除。删除后在不重启服务器的情况下。
重新生成慢查询日志文件:
mysqladmin –u root –p flush-logs
flush logs